
안녕하세요. 스위프트로 웹뷰를 개발하는 도중 전화번호, 주소, 이메일에 자동으로 링크가 걸려 있어 이를 비활성화 해야 했습니다. 저는 모든 a태그에 로딩바와 같은 페이지 전환 효과를 구현해놨기 때문에, 실제로 페이지 이동 목적이 없는 a태그는 제거해야 하는 상황이었죠. 구글에 많은 글들이 이러한 자동 링크를 비활성화 하는 방법으로 아래와 같은 코드를 적어놨습니다. 위의 메타 태그를 웹페이지에 추가하는 것인데, 모바일 사파리에 웹에서는 시도해보지 않았지만 WKWebView에서는 저 방법은 작동 되지 않습니다. 그러나 코드 없이도 자동 링크를 비활성화 할 수 있습니다. 위의 이미지에서 제가 빨갛게 동그라미 쳐놓은 부분의 Phone Number와 Address, Calendar Event, Tracking N..

xss(croos site script)란?? 악의적인 사용자가 공격하려는 사이트에 스크립트를 넣는 기법을 말한다. 공격에 성공하면 사이트에 접속한 사용자는 삽입된 코드를 실행하게 되며, 보통 의도치 않은 행동을 수행시키거나 쿠키나 세션 토큰 등의 민감한 정보를 탈취한다. XSS 공격 보안 방법 XSS 공격을 보안하려면 네가지 상황에 대해 모두 보안을 해주셔야 합니다. 첫번째, 또는 과 같은 html 태그에 스크립트 공격이 들어오는 경우 두번째, 태그에 스크립트 공격이 들어오는 경우 세번째, json 형식의 데이터 전송에 스크립트 공격을 하는 경우 네번째, 웹소켓에서 스크립트 공격이 들어오는 경우 첫번째와 두번째 상황은 방어하는 방법이 거의 같습니다. 두번째 상황에 대해서는 1-2가지 설정만 더 추가하면..
서버도 일종의 컴퓨터입니다. 일반 컴퓨터와 다르게 서버는 24시간 돌아가죠. 구체적으로 따지면 24시간이 아니라 서버를 시작하고 종료할때까지 쉬지않고 돌아가는거죠. 이럴 경우 서버에는 메모리가 쌓이게 됩니다. 조금 구체적으로 설명하면, 사용자들이 사용하고 이제는 사용하지 않는 자바의 객체들이 많이 있을것입니다. 예를 들어 내 웹사이트에 접속하고 웹사이트에서 나가더라도 접속자가 사용한 객체들은 여전히 남아 있습니다. 자바의 사용하지 않는 객체를 제거해주는 가비지컬렉터는 사용할 가능성이 낮다고 판단되는 객체를 제거합니다. 즉, 제거되지 않는 객체는 사용할 가능성이 있다라고 해석할 수 도 있으며 이는 사용중에 있다라고도 판단할수 있는거죠. 이렇게 객체들이 많이 쌓이면 메모리가 이 객체를 관리해야하기 때문에 서..
안녕하세요, 오늘은 ios의 웹뷰에서 자바스크립트를 사용하기 위해 어떤 설정을 해야하는지 설명드리겠습니다. 구글링이나 다른 포털사이트를 통해 많은 포스팅을 보면 여전히 UIWebView에 관한 포스팅들이 많이 있을 것입니다. WKWebView설정을 하다가 어렵고 잘 안되다보면, UIWebView 소스가 많으니깐 UIWebView로 웹뷰를 만들어볼까 생각도 할 수 있는데요. 성능면에서 WKWebView가 훨씬 우수하니 WKWebView를 사용하는것이 훨씬 좋습니다. 웹페이지를 불러오는 렌더링 속도가 두배정도 더 빠르며 CPU 효율도 훨씬 효과적입니다. WKWebView에서 별도의 설정을 하지 않고 그대로 사용하면 자바스크립트의 경고창은 사용되지 않습니다. 비활성화 되어 있는거죠. 커스터마이징을 통해 활성화..

안녕하세요. 오늘은, 웹서버에 접속할때 내가 웹뷰로 접속했는지 그냥 모바일 웹으로 접속했는지 구분하는 방법에 대해 알아보겠습니다. 만약 웹뷰를 배포하고 있는 웹프로젝트에서 웹뷰 접속자들에게만 구현되게 하고 싶은 기능이 있다면 웹뷰로 접속했는지 모바일 웹으로 접속했는지 구분할수 있어야 합니다. 보통 웹뷰와 같은 하이브리드 앱에서는 네이티브앱에 비해 앱의 속도가 느려 개발자가 프로그레스바와 같은 애니메이션 효과를 주기 위해서 사용하는 경우가 있습니다. 더 다양한 경우도 있겠죠. 이처럼 하이브리드앱을 배포하는 개발자들은 웹뷰에서만 작동하게 하는 기능을 구현하기 위해서 모바일 웹과 웹뷰를 구별할 필요가 있습니다. 웹서버의 자바스크립트에서 우리는 navigator.userAgent 코드를 통해 내가 어디에서 접속..

지난번 포스팅에서 원격지 서버에서 리모트 연결을 위한 설정을 하여 로컬서버에서 jconsole과 visualVM으로 접속을 하였습니다. developer111.tistory.com/35 ec2 리눅스 서버에 jconsole과 visualVM 원격접속 [1] (use jconsole and visualVM to remote connect ec2 linux server) 안녕하세요. 오늘은 ec2 리눅스 서버에 jconsole 원격 접속 방법을 알려드리겠습니다. 요즘 메모리 에러가 자주 나타나서 자바의 메모리를 공부하고 메모리 관리할수 있는 툴에 대해 알아보았는데 developer111.tistory.com 위의 포스팅과 연결되는 내용으로 이번 포스팅에서는 원격 접속 방법에 대해서는 다루지 않고 아이디 비밀..

안녕하세요. 오늘은 ec2 리눅스 서버에 jconsole 원격 접속 방법을 알려드리겠습니다. 요즘 메모리 에러가 자주 나타나서 자바의 메모리를 공부하고 메모리 관리할수 있는 툴에 대해 알아보았는데 jconsole과 visualVM이라는게 있었습니다. jconsole과 visualVM이 GUI형태로 메모리 사용량을 제공해주기 때문에 원격으로 접속만 할 수 있다면 굉장히 유용한 툴이 될 것 같았습니다. 몇일 동안 삽질을 반복하며 시도하였고 결국에는 다행히 원격접속에 성공하였습니다. 정말 많이 삽질했기때문에 제 경험을 토대로 하나부터 열까지 설정 하나하나 알려드리도록 하겠습니다. 우선 저의 환경을 알려드리겠습니다. 서버 OS : 아마존 리눅스2 WAS : tomcat7 java8 로컬 윈도우, 자바8 jcon..

안녕하세요. 실서버에서 스프링 프로젝트를 호스팅하여 운영하던 중에 java.lang.OutOfMemoryError 가 나타났습니다. 서버관리가 초보라 처음 보는 에러였기 때문에 여기저기 구글링을 하며 오류를 미연에 방지하고 다음에 또 비슷한 유형의 에러가 나오면 빨리 해결할수 있도록 자바 메모리에 대해 깊이있게 공부를 해보았습니다. 자바 메모리 구조가 궁금하신 분들은 밑의 링크를 참조하여주세요. 제가 이번 에러를 통해 여기저기 글을 참조하며 최신 자바 버전에 맞게 변경된 내용까지 포함한 내용입니다. 글을 읽어보고 오류 해결방법을 읽어보는게 도움이 될것입니다. developer111.tistory.com/33 [자바]JVM 구조 및 자바 메모리 구조 실서버에 톰캣7과 자바8으로 호스팅한 후 한달 정도 되니..