개발 23

iOS 모바일 웹 키보드 팝업시 div 높이 줄이기

채팅사이트에서 대화 입력시 키보드가 팝업될 때 iOS 환경에서는 div 높이가 자동으로 줄어들지 않습니다. (안드로이드에서는 자동으로 됨) * 번외 제가 이래서 구글을 좋아하지만, 애플을 싫어 합니다. 맥OS, swiftUI, 웹까지.... 똑같은 실력으로 개발해보면 결국 아이폰쪽이 퀄리티가 떨어집니다. 그런데 다른 개발자들도 비슷한 심정인지, 맥OS에서 돌아가는 프로그램들 보면 전부 완성도가 떨어진다는.. 다시 본론으로 돌아와서 문제의 화면입니다.   대화 입력시 input에 focus가 되면 아래 처럼 대화영역 div 높이가 줄어들게 하려고 합니다. 보이는 브라우저 화면 사이즈가 변경될 때, 그 크기로 변경하는 방법을 사용했습니다.   키보드 팝업으로 화면 사이즈 변경 될 때 window.visua..

개발 2024.07.27

HTML 모바일 웹 폰트 크기 커지는 문제 해결 방법

HTML 모바일 웹 개발을 하는데 특정 상황에서 폰트가 커지는 문제가 발생합니다. 안드로이드 크롬에서만 발생하고 (아이폰은 발생 안함, 데스크탑 크롬 디버깅 모드 모바일에서는 발생 안함)텍스트 문장이 1줄을 넘어설 때만 발생함 (문장이 짧으면 발생 안함) 관련해서 검색해보면 두가지 해결 방법이 나오는데 이것을 해도 해결이 안됩니다. - meta tag  - text-size-adjust html {     -webkit-text-size-adjust: none; } 해결 방법 결국 찾은 해결의 실마리는 div에 height가 설정 안되어 있으면 이런 문제가 발생한다는 것입니다.div에도 그렇고, table의 td에도 동일한 현상이 있습니다. 원래 코드 HTML 모바일 웹에서 특정 상황에서만 폰트..

개발 2024.07.27

모바일 웹 input focus 안되는 문제

페이지가 로드되고 나서 특정 input에 focus 되도록 하려고 하는데 되는 경우와 안되는 경우가 있습니다. 아래는 매우 간단한 HTML 예제 코드입니다.HTML 코드상으로는 완전히 똑같을지라도, 어떻게 페이지가 전환 되는지에 따라서 차이가 발생합니다.  focus 안되는 경우사용자가 의도해서 HTTP POST로 페이지가 전환되는 경우 모바일 크롬 브라우저에서는 focus가 안됩니다.보안상인지 버그인지는 모르겠습니다.다른 모바일 브라우저에서는 다 되는데 크롬만 안됩니다. focus 되는 경우위 경우만 제외하고는 다 됩니다.- HTTP GET으로 페이지 이동시 focus 됨- 다른 브라우저에서는 HTTP POST도 모두 focus 됨- 사용자 의도와 무관한 (예 : 웹소켓 수신시 동작) HTTP PO..

개발 2024.07.18

맥OS 이클립스 에러 - The JVM shared library does not contain the JNI_CreateJavaVM symbol

맥에서 이클립스 (또는 전자정부) 실행시 나오는 에러 입니다. 에러 내용 The JVM shared library "/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home/bin/../jre/lib/server/libjvm.dylib" does not contain the JNI_CreateJavaVM symbol. 원인 M1, M2에서만 문제가 발생합니다. (인텔칩은 해당 없음) 오라클 JDK를 ARM 버전으로 옳바르게 설치해도 이유는 모르지만 에러 납니다. 해결방법 temurin jdk를 설치하면 됩니다. 저는 처음 들어보는데 이클립스 재단에서 진행한 프로젝트라고 하네요. jdk 설치하고 나서는 JAVA_HOME 환경변수 설정하고, 이클립스의 Inf..

개발 2023.10.12

자바스크립트 ES6 템플릿 리터럴 JSTL과 같이 사용방법

템플릿 리터럴은 자바스크립트 ES6 문법에서 추가된 기능 입니다. ​ 기존 (ES5) var a = 5; var b = 10; console.log('Five is ' + a + ' and\nnot ' + (a + b) + '.'); ​ 템플릿 리터럴 (ES6) var a = 5; var b = 10; console.log(`Five is ${a} and not ${a + b}.`); ​JSTL과 같이 사용하기 ${} 문법은 JSTL에서도 사용되는 문법이기 때문에, 템플릿 리터럴로 인식되는 것이 아니라 JSTL로 인식 합니다. 그래서 아래와 같이 사용해야 합니다. var a = 5; var b = 10; console.log(`Five is ${'${a}'} and not ${'${a + b}'}.`);

개발 2023.01.08

자바 JNI 사용시 이클립스 스프링 톰캣 java.library.path 설정 방법

이클립스 개발환경, 그리고 스프링 웹서비스에서 JNI를 사용하는 경우 java.library.path 위치 (dll 파일 위치)를 지정해 주는 방법 입니다. ​ - 스프링 웹서비스 이기 때문에 톰캣으로 구동이 되니 톰캣 VM arguments에 지정 되어야 합니다. 톰캣 Arguments에 -Djava.library.path=경로 설정 ​ - Java Build Path에서 Native library location 설정하는 방법은 되지 않았습니다. (X) ​ - C:\Windows\System32 경로에 dll 복사하는 방법도 되지 않았습니다. (X) ​ - 환경변수 Path에 dll 경로 추가하는 방법도 되지 않았습니다. (X)

개발 2022.12.09

스프링 mybatis 폐쇄망 dtd 문제

현상 폐쇄망에서 WAS 기동시 외부의 mybatis-3-config.dtd 파일을 불러 오지 못하고 오류 발생 ​ 로그 Caused by: org.springframework.core.NestedIOException: Failed to parse config resource: class path resource [sqlmap/sql-mapper-config.xml]; nested exception is com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: java.net.ConnectException: 연결 시간 초과 (Connection timed out) ​ 분석 정상적이라면 dtd 파일은 mybatis-x.x.x.jar 파일안에 있는 ..

개발 2022.11.29

HSTS 오류 - Strict-Transport-Security 헤더에 오류가 감지됨

보안취약점으로 Strict-Transport-Security 헤더에 오류에 대한 해결방법입니다. 일반적인 경우에는 이 문제가 나오지 않을테지만, 스프링시큐리티 사용하는 경우에 발생 합니다.​ ​ 원인 HTTP 헤더를 확인해보면 HSTS 헤더값에 preload가 빠졌습니다. preload까지 들어가야 표준에 맞나 봅니다. ​ 정상 Strict-Transport-Security: max-age=31536000; includeSubDomains; preload ​ 오류 Strict-Transport-Security: max-age=31536000; includeSubDomains ​ 해결 스프링시큐리티 소스인 HstsHeaderWriter.java 에 빠뜨린 preload 값을 넣어줬습니다. 그리고 HstsH..

개발 2022.08.06