반응형

개발 창고 420

[Spring] WEB-INF에 접근하기

보통 개발환경과 서버 환경을 동일하게 사용하기 위해서는 절대 주소보다는 상대 주소를 활용하는 경우가 많습니다. (때로는 config파일에서 세팅을 고정해서 활용하는 방법도 있지만 이건 추후에 작성하도록 하겠습니다.) 만약 WEB-INF 내 config폴더에서 file.xml이라는 파일을 읽어들일 경우 다음과 같이 호출하게 되면 내부의 파일을 호출 가능합니다. @Controller public class BaseController { @Inject private ServletContext context; ... public ModelAndView index(ModelMap model){ ... File file = new File(context.getRealPath("/WEB-INF/config/file...

개발 창고/Web 2020.08.20

[Android] 기기별 고유식별을 위한 UUID

과거에는 기기별 Mac Address를 활용했지만, 보안 문제 등으로 인해 사용이 어려 어려워졌습니다. 때문에 이를 대체해서 개인 식별번호를 위한 UUID를 활용가능합니다. String uuid = UUID.randomUUID().toString(); Log.d("TAG", "UUID >> " + uuid); 다음과 같이 키가 발급됩니다. 때문에 이 키를 저장해 두고 활용하면, 캐시 삭제/어플 삭제 이전에는 계속 동일한 식별번호로 활용 가능합니다. // UUID 초기화 private void initUuid(){ SharedPreferences mPref = getSharedPreferences("KEY_PREF", MODE_PRIVATE); String uuid = mPref.getString("KEY..

[Javascript] 운영체제에 대한 정보를 위한 navigator

스크립트문을 작성하다보면 브라우저의 특성 및 운영체제별로 기능을 분리해야하는 경우가 발생합니다. 이전글에서 모바일과 PC버전에 따른 기능분리에 대해서 이야기할때 잠깐 스쳐지나간 navigator에 대해 좀 더 자세히 이야기해볼까 합니다. 2020/08/13 - [개발 창고/웹 개발] - [Javascript] 모바일과 윈도우 구분짓기, User-Agent [Javascript] 모바일과 윈도우 구분짓기, User-Agent 얼마전 고객의 요청으로 모바일과 윈도우에 동일 기능에 대해 다르게 작동해야하도록 하는 소스를 구현해야 하는 일이 생겼습니다. 그래서 작업하는 김에 또 이렇게 창고에 작업을 남겨두기 위 royzero.tistory.com 일단 navigator에 대한 모든 프로퍼티는 아래의 명령으로 확..

개발 창고/Web 2020.08.14

[Javascript] 모바일과 윈도우 구분짓기, User-Agent

얼마전 고객의 요청으로 모바일과 윈도우에 동일 기능에 대해 다르게 작동해야하도록 하는 소스를 구현해야 하는 일이 생겼습니다. 그래서 작업하는 김에 또 이렇게 창고에 작업을 남겨두기 위해 글을 작성해 봅니다. 참고로 자체 제작 어플을 이용하는 경우엔 AndroidBridge를 활용하면 더 확실하지만, 안드로이드/애플의 브라우저 어플에서 실행할때는 이런 부분에 제약이 있습니다. 2020/08/04 - [개발 창고/안드로이드 개발] - [Android] 안드로이드 기능을 웹에서, AndroidBridge [Android] 안드로이드 기능을 웹에서, AndroidBridge Android 개발 시, 기존 모바일웹을 어플로 띄우고 싶을 때가 있을 겁니다. 그럴 때 사용하는 게 바로 WebView인데 가끔 Web에..

개발 창고/Web 2020.08.13

[Android] 화면 회전 리로딩 막기

WebView 개발을 하다보면, 가로/세로 화면모드로 전환시 WebView가 리로드되는 현상이 발생합니다. 이는 화면 전환에 따른 onCreate의 재호출 되기 때문입니다. 이런 경우 회전시 리로드를 막는 방법은 매우 간답하니다. AndroidManifast.xml ... 해당 파일에서 내에 android:configChanges="orientation|keyboardHidden|screenSize" 해당 라인을 추가하면 화면모드 전환시에도 웹뷰등이 리로드 되는것을 막을 수 있습니다.

[HTML] Form 자동 Submit 막기

html에서 form을 만들때 가장 쉽게 실수 하는 부분이 submit에 대한 것입니다. 모든 전처리를 서버에서 하는 경우에는 문제가 되지 않지만, javascript내에서 전처리르 하게 하는 경우에는 이 부분이 오작동을 일으키기도 합니다. 다음과 같이 html소스가 되어있다고 가정하고, 해당 파일이 http://localhost:8080/main.html 이라고 가정하였을 때, 다음과 같은 입력창이 하나 생성됩니다. 여기에 아무 텍스트나 입력하고 엔터를 치게 되면, 어떻게 될까요? 결론부터 말하면 아래와 같이 호출되게 됩니다. http://localhost:8080/main.html?keyword= 두 가지 방법이 있는데 javascript에서 막는 방법 (jQuery 기준) $("[name=editF..

개발 창고/Web 2020.08.12

[Spring] Movie Streaming 처리

최근에 카페24에 스프링 프레임워크를 설치하고 운영중에 버그가 한개 발생했었습니다. 그 버그는 동일 서버내에서 영상 재생을 다이렉트로 하면, Stack Overflow가 발생하면서 재생동안 에러로그가 쌓여 카페24에서 할당받은 용량을 catalina.out이 꽉 차면서 용량이 사용할 수 없는 문제였습니다. 확인해보니, 컨트롤러단에서 스트리밍 링크를 직접 연결해주면 해당 문제가 해결되는것을 확인했습니다. private final String FOLDER_MOVIE = "{폴더경로}"; /** * @reference : http://aodis.egloos.com/5962812 * @modified : whiteduck */ @RequestMapping(value="/stream/{video_name:.+}"..

개발 창고/Web 2020.08.10

[Kotlin] 코틀린이란?

최근에 코틀린에 대해 공부를 할 이유가 많아졌습니다. 그 이유 중 하나는 구글이 안드로이드 개발 선호 언어로 코틀린을 들기 때문이고 (구글은 젯브레인스사와 협업으로 IntelliJ IDEA 기반으로 만들었고, 코틀린은 이 젯브레인사에서 만든 언어라 호환성이 좋다고 보여집니다) 또 개발자 입장에서 소스가 대부분 복사 붙여넣기가 많은데, 최근 안드로이드 소스는 자바 소스가 줄어들고 코틀린 소스가 많아지기 때문입니다. 그렇다고 코틀린 소스로 개발은 신규 프로젝트에서 중요하지만, 기존의 자바기반 어플을 유지보수하기위해서도 코틀린 소스를 읽을 줄 알아야 하는 부분이 많아 코틀린에 대한 니즈가 많이 늘어나게 되었습니다. 기본적으로 코틀린은 위키백과에 아래와 같이 정의하고 있습니다. 코틀린(Kotlin)은 JVM에서..

[MyBATIS] Primary Key를 Insert하기 위한 SelectKey

RDB에서 TABLE에 INSERT를 할 때 기본키(PK, Primary Key)를 꼭 지켜줘야 하는 경우가 많습니다. MariaDB나 MySQL등에서는 Auto Increasement를 활용하는 경우가 많지만, Oracle에서는 이 Auto Increasement를 제공하지 않죠. 흔히 MyBATIS를 사용할때, INSERT 하는 방식에는 총 3가지 정도 아이디어를 낼 수 있습니다. 1. PK SQL과 INSERT SQL을 만들고 호출 하는 방법 2. INSERT를 SELECT로 만드는 방법 3. SelectKey 구문을 활용하는 방법 만약 아래와 같은 테이블이 있다고 가정한다면 CREATE TABLE TB_BOARD ( BBS_SEQ INT NOT NULL, BBS_TITLE VARCHAR(100) ..

개발 창고/Web 2020.08.05

[Android] 안드로이드 기능을 웹에서, AndroidBridge

Android 개발 시, 기존 모바일웹을 어플로 띄우고 싶을 때가 있을 겁니다. 그럴 때 사용하는 게 바로 WebView인데 가끔 Web에서 안드로이드의 기능 (ex. 카메라, 바코드스캐너, 알림 등등)을 사용하고 싶을 때가 있을 겁니다. 물론 최근의 WebView는 그런 걸 많이 커버하려고도 하지만, 커스터마이즈한 기능들까지 다 커버하지는 못하죠. 그럴 때, 개발자의 갈증을 2프로 정도 해소해줄 수 있는 기능이 바로 AndroidBridge입니다. 이는 AndroidBridge라고 따로 있는 건 아니고 기능상으로 그러하다는 거고 webview를 통해 web과 android가 통신할 수 있도록 다리를 놓아주는 기능이기 때문에 AndroidBridge라고 보시면 됩니다. 1. Bridge 만들기 impor..

반응형