본문 바로가기
  • 일하면서 배운 내용 끄적이는 블로그

전체 글71

javax.servlet.jsp.JspTagException: Neither BindingResult nor plain target object for bean name 'command' available as request attribute 이번에 회사 헤드 포탈 버전업그레이드를 진행하고있는데 Spring은 4.3.0 -> 5.3.37전자정부 프레임워크는 3.6.0 -> 4.3.0 으로 버전 상승 시키는 중이다. 처음엔 톰캣 서버도 가동이 안되다가 이제 서버는 올라갔는데, 글 작성 시 해당 오류가 뜬다. command가 뭔지를 모르겠어서 헤매다 겨우 고쳤다.. form:form 태그를 사용할때 (회사 코드에는 f:form 이라고 되어있는데 무슨 차이인진 모르겠다) 데이터 바인딩을 위해서 commandName 혹은 modelAttribute를 사용하는데 스프링 4점대, 전자정부 프레임워크 3.10 버전까지는 commandName, 그 이상은 modelAttribute를 사용해야한다. 예시) 이 부분을 이렇게 변경하면 정상동작 한다. 2025. 3. 28.
명시적으로 UI 렌더링 이후 동작하는 방법 최근 KendoUi의 프로그레스바를 사용하다가 이상한 오류가 생겼는데 프로그레스바 호출을 분명 ajax 호출 이전에 선언 했는데도 프로그레스바가 나오지 않거나 혹은 ajax가 끝난 다음 잠깐 나왔다가, ajax 호출의 complete 부분에 선언해둔 프로그레스바를 없애는 코드에 의해 바로 사라져버리는 문제였다. KendoUi 라이브러리 자체를 못불러오는건가 싶어서 jsp에서 kendoui 라이브러리 가져오는 스크립트 위치도 바꿔보고 했는데 그냥 ajax 호출만 제외하면 잘만 나왔다 그러다 원인을 찾은게 현재 ajax 호출을 비동기로 하고있는데 KendoUi를 호출 -> (아직 KendoUi 프로그레스바 호출된 화면이 렌더링 안된 상태) ajax 호출 -> ajax 호출이 비동기라 해당 ajax 호출이 완.. 2025. 2. 21.
안드로이드 앱 내에서 apk 파일 설치하기 현재 작업중인 앱이 로그인 시 VPN이 연결되어야 하는데고객사에서 사용하는 VPN이 라이브러리를 추가 하고 apk 파일도 별도로 설치해야함.. 근데 애초에 VPN이 연결이 안되면 사이트 접속이 안되니 설치페이지같은것도 못쓰고apk 파일 자체를 프로젝트 안에다가 넣어놓고앱 실행 시 설치여부 확인해서 없으면 설치하는 식으로 작업했다.  먼저 apk 파일 위치는 src/main/res/raw파일 확장자는 처음에 .apk로 붙였는데 그러면 나중에 R.raw.대충파일명.apk로 인식이 안돼서 _apk로 수정 대충 나머진 설치가 순차적으로 여러개 진행돼서 필요한거고 apk 설치는 vpnManager.installApk(R.raw.****vpn_apk, Common.VPN_FILE_NAME, new CompleteC.. 2024. 11. 28.
SQLPLUS IP 주소 변경하기 로컬에 sqlplus로 oracle db 설치했는데 기존에 주소가 59.**.**.*** 이렇게 되어있었음 근데 이러니까 유선 인터넷이 안돼서 와이파이로 연결했을때 ip가 달라서 연결이 안됨 그래서 127.0.0.1로 변경함 listener.ora 파일에서 HOST 변경........LISTENER =   (DESCRIPTION_LIST =     (DESCRIPTION =       (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))       (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))     )   ) tnsnames.ora 파일에서도 HOST 변경......LISTENER_ORCL =   (ADDRES.. 2024. 11. 8.
Firebase 클라우드 메시징 기존에 HTTP를 사용하다가 HTTP V1으로 마이그래이션 해서 모바일 푸쉬 알람이 전부 안돼서 수정.. 처음 해봐서 정리하면서 진행했다  먼저 https://firebase.google.com/?hl=ko 에 접속한 다음, 구글 로그인 진행하고 우측 상단에 Go to console 눌러준다  여기서 새 프로젝트 추가해주고  추후 아이폰도 작업 해야할거같은데 일단 안드로이드 클릭...  패키지 이름은 반드시 일치해야함 안드로이드 스튜디오 열어서 build.gradle(:app)에 applicationId 확인 다음은 버튼 눌러서 json 파일 다운로드받고 저 위치에 넣어주면 된다  이것도 그냥 따라서 진행하면 됨 build.gradle(:app)에apply plugin: 'com.android.appli.. 2024. 10. 4.
패러미터로 인터페이스 전달하기 코드를 짜다보니 이후 실행할 함수 안에서 다른 함수를 실행한다던지아니면 멀티스레드를 사용할때 예외처리를 한곳에서 하고싶은데 그냥 Exception을 던지면 안될때가 있었다. 그럴때 사용한 방법이 인터페이스를 하나 선언해서, 그걸 패러미터로 넘겨주는 방식이다 이런식으로 인터페이스를 하나 선언하고(해당 인터페이스는 다이얼로그가 종료될때 실행될 함수를 전달하기위해 만들었다) 그런 다음 패러미터로 전달받아 실행한다. 안에 들어갈 함수는 저런식으로 선언하면 된다. 참고로 지금처럼 인터페이스에 함수가 하나뿐이라면이렇게 람다 표현식으로 써도 된다(Java 8 이상) 2024. 9. 10.