728x90
반응형

회사에서 운영하는 사이트들의 일부 페이지에서

뒤로가기를 하면 제대로 작동하지 않는 현상을 발견하고

한동안 해결하지 못하고 잊고 있었는데, 어제 갑작스럽게 해결한 내용을 기록해본다.

문제 상황
location.replace()로 이동한 페이지에서 뒤로가기를 하면 이전 페이지가 아닌 엉뚱한 페이지로 돌아감

 

✅ location.replace()
 
현재 페이지를 새로운 페이지로 대체하기 때문에, 이전 페이지 히스토리에 남지 않음.
뒤로가기를 눌러도 이전 페이지로 돌아가지 않는다.

 

해결 방법: location.href()

 

✅ location.replace()

브라우저의 히스토리에 페이지가 추가되기 때문에,
사용자가 뒤로가기 버튼을 누르면 이전 페이지로 다시 이동할 수 있다.

 

location.replace() 언제 쓰면 좋을까?

  • 로그인 후 메인 페이지로 이동하면서, 다시 로그인 페이지로 돌아가는 걸 막고 싶을 때
  • 회원가입/비밀번호 재설정 등 민감한 POST 처리 후 재전송/뒤로가기 방지를 하고 싶을 때
  • 결제 완료 후, 다시 결제 페이지로 돌아가는 걸 방지하고 싶을 때

 

728x90
반응형
728x90
반응형

 

회사 내 시스템에서 리뷰 관련된 시스템을 구축하면서

사용자들이(나조차도) 리뷰 내용에 이모지 사용을 많이 하기 때문에

테스트로 이모지 포함된 내용을 입력했더니 에러 발생!


에러 내용 :

### Cause: java.sql.SQLDataException: (conn=3899) Incorrect string value: '\xF0\x9F\x98\x85' for column

...생략


 

처음에는 기존 UTF-8로 세팅되어 있던

MariaDB의 테이블 해당 칼럼과 jdbc 등의 인코딩을 utf8_unicode_ci

변경하면 될 것으로 예상했지만

계~속 동일한 에러가 발생하는 상황이었다.

 

모두 원복 시킨 뒤 찾아낸 대안 방법.

(사용 중인 MariaDB 버전이 낮은 문제도 있고, 이미 운영 중인 설정에 대해

섣불리 변경하면 발생할 수 있는 문제점에 대해서도

고려해야 했기 때문에 위 방법은 포기)

 

차선책으로 리뷰내용에서 이모지 정규식을 통해 이모지> 유니코드로 변환하여 저장하고

프런트에서는 유니코드> 이모지로 변환하는 메서드를 활용하여 해결했다.

728x90
반응형
728x90
반응형

머리 터지는 회사 프로젝트 메이븐 빌드 실패 오류..

 

원인을 유추해 봤는데도 도무지 해결 방법이 찾아지지가 않았다.

뭔가 오류 내용으로는 slf4j의 의존성 관련 버전 충돌 문제로 보였었지만

이점이 정확한 문제의 원인이 아니었던 것이었다.

 

어이없게도 설마~~ 했던 JRE 버전 부분 문제였다.

참 나!!!

Main 쪽만 신경 썼었는데 허탈한 놓침이었던 것.

 

 


에러 내용 :

Exception in thread "main" java.lang.IllegalAccessError: tried to access method org.slf4j.LoggerFactory.reset()V from class org.slf4j.MavenSlf4jFriend
at org.slf4j.MavenSlf4jFriend.reset(MavenSlf4jFriend.java:33)
at org.apache.maven.cli.logging.impl.Slf4jSimpleConfiguration.activate(Slf4jSimpleConfiguration.java:60)
at org.apache.maven.cli.MavenCli.logging(MavenCli.java:473)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:278)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)


 

어쨌든 메이븐 빌드 성공!

 

 

 

728x90
반응형
728x90
반응형

회사일을 하면서 PC / 안드로이드 환경에서는 잘 작동하던 부분들이

아이폰에서 틀어지는 일이 이상하게도  빈번했다. 

 

이번에 특정 사업체의 모바일 전용 바코드 조회 페이지를 작업하면서

멀쩡하게 table width가 100%로 잘 나오던게

내 폰에서는 width가 넘쳐서 제대로 인식이 안되는 것 같았다.

 

문제 해결을 위해 열심히 검색 또 검색한 결과

원인은 width, min-width를 지정하지 않으면 발생한다는데

둘 다 지정되었는데 왜 안되는 것이지?

설마 css 우선순위에서 밀려져서 다른 설정값이 적용되었던걸까 싶어서

인라인 태그로 넣어 테스트 해보니 드디어 제대로 작동!

테이블에 부여된 id를 통해 style로 설정값을 다시 세팅 후 최종 테스트하고 마무리~

 

#tabldId {
  width: 100%;
  max-width: 100%;
}

 

 

백쪽은 에러 해결하느라 머리가 아프지만

프론트쪽은 틀어지는 UI 해결하느라 눈이 아프다! 

728x90
반응형
728x90
반응형

회사에서 이클립스로 작업하면서 잘되던 페이지가

가끔 뜨지 않는 에러를 마주하곤 했다.

오늘도 마주해서 해결했는데, 생각보다 빠른 해결!

원인을 알고 해결한 듯하여 기록해 본다.

추후 또 마주했을 때 이 방식으로 해결하게 되면 에러 내용도 첨부해야겠다.

 

no class...라고 뜨는 에러와 함께 잘되던 사이트도 에러페이지가 떴다.

보통 작업을 할 때 상단 메뉴바의 Project 내 Build Automatically를 꺼두는데

혹시? 하는 마음으로  Build Automatically 부분에 체크 후

프로젝트 리스타트 해보니 바로 된다!

 

class 파일을 찾아 못하는 것에 대한건 에러메시지로

어느 정도 이해는 했지만 왜 그런가 싶었는데

빌드가 뒤쳐져서 그런 걸까?

내용을 더 찾아보고 에러 해결 원인에 대하여

좀 더 이해하도록 해보아야겠다.

 

 

 

어쩌다 보니 이번달 회고록이 skip 되어버렸다...!

sqld 개발자 자격증은 합격했다 :)

조만간 잊지 않고 회고록을 작성해 봐야겠다.

728x90
반응형

+ Recent posts