분류 전체보기

Web/Spring

Spring Boot MariaDB + Mybatis 연동하기

Mybatis? 마이바티스는 개발자가 지정한 SQL, 저장프로시저 그리고 몇가지 고급 매핑을 지원하는 퍼시스턴스 프레임워크이다. 마이바티스는 JDBC로 처리하는 상당부분의 코드와 파라미터 설정및 결과 매핑을 대신해준다. 마이바티스는 데이터베이스 레코드에 원시타입과 Map 인터페이스 그리고 자바 POJO 를 설정해서 매핑하기 위해 XML과 애노테이션을 사용할 수 있다. 쉽게 이야기하자면 대표적으로 기능으로는 쿼리 템플릿을 작성하여 파라미터 자동매핑, if, case, foreach 등을 이용해서 dynamicQuery 작성, 쿼리 결과에 대한 매핑을 진행해준다. 쿼리기반으로 작성된 프로젝트에서는 꼭 사용해야할 프레임워크라고 볼 수 있다. Maybatis Spring Starter를 이용해서 빠르게 연동하기..

Web/Spring

Spring Boot Profiles를 이용한 운영/개발 환경 구분

profiles? 서비스를 운영하다보면 운영과 개발 혹은 로컬까지 세팅을 다르게 해야하는 경우가 생깁니다. 대표적으로는 운영DB와 개발DB, 또는 런타임 환경별로 달라지는 설정값 등 런타임 환경별로 작업을 하게되는데 기존 제가 있던 프로젝트의 경우에는 하나의 application.properties를 사용하며 버전컨트롤 상에는 개발서버의 application.properties가 작성되어있으며 운영상의 properties는 서버에 직접 접속해서 properties를 변경하는 방식으로 구성되어있었습니다. 그에따라서 배포요청을 했을경우 배포자가 properties 수정의 누락으로인해서 에러가 발생하는 경우가 생겼으며 또한 새로운 개발자가 왔을경우 프로젝트만 봐서는 운영상의 properties를 확인할 수 없..

HybridApp/Cordova

[하이브리드앱] Cordova 환경에서 LocalStorage가 초기화 되는 현상

UIWebview 환경에서 발생할 수 있는 앱 크래쉬 / LocalStorage 초기화 현상 얼마 전 제가 Cordova / UIWebview 로 3년전쯤 앱 프로젝트를 진행했던 곳에서 아이폰에서만 간헐적으로 종료 / LocalStorage가 초기화되는 현상이 있다는것을 알았습니다. 최초 작업당시만 해도 발생하지 않았던 문제이고 작년 IOS 12 업데이트 이후 그 현상의 매우 잦아졌다고 하니 OS상의 이슈로 예상했고 이 사이트뿐만 아니라 다른 사이트에서도 겪고있을 문제라 판단되어 포스팅 해봅니다. 원인은 아이폰 메모리 관리 정책에 있습니다. 사파리 등 앱을 쓰시다가 앱이 간헐적으로 강제종료 되는 현상을 겪어보신적이 있으실텐데요. Webview 내 LocalStorage는 IOS에서 out of memor..

HybridApp/기타

[하이브리드앱] 안드로이드 웹뷰에서 쿠키 증발 현상

안드로이드 웹뷰에서의 쿠키 증발 현상 안드로이드로 하이브리드앱 구성시 쿠키가 증발해버리는 현상이 있습니다. 발견된 현상으로는 앱 강제종료시 웹뷰내에 저장된 쿠키가 증발해버리는 현상입니다. 해결방법으로는 앱의 생명주기에 쿠키 싱크동기화를 해주어 원하는 시점에 쿠키를 저장해주는 방법입니다. @Override protected void onResume() { super.onResume(); if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { //noinspection deprecation CookieSyncManager.getInstance().startSync(); } } @Override protected void onPause() { super.on..

HybridApp

[하이브리드앱] 하이브리드앱 유틸리티 JS

hybridUtilJS - 하이브리드앱(웹앱) 유틸리티 자바스크립트하이브리드앱 운용시 운영체제 구분 등 유틸객체Examplewindow.webAppUtil.isAndroid(); window.webAppUtil.isIos();기능들함수파라미터리턴타입설명isAndroidboolean안드로이드 체크isIosbooleanIOS 체크getAndroidWebviewMajorVersioninteger안드로이드 웹뷰 메이저버전 확인getIphoneWebviewMajorVersionintegerIOS 웹뷰 메이저버전 확인isNativeboolean앱을 통한 접속인지 확인getWebviewVersionintegerOS구분없이 웹뷰 메이저버전 가져오기getGooglePlayStoreUrlappPackageName(Stri..

HybridApp/Cordova

[하이브리드앱] cordova-plugin-whitelist 분석

WhiteList ? Cordova App에서 Navigation(화면이동), Intent(scheme 호출), network Request(image, XHR, 등) 의 권한정책을 설정하는 플러그인 입니다. 하이브리드앱 이라는건 애초에 화면에 대한 리소스를 App 내부 Assets 에서 가지고 있는 상태에서 이 리소스를 사용하여 앱을 구성하는 것 입니다. 허나 데이터를 불러오는 ajax, 앱을 호출하는 intent, webview내에서의 화면이동 등을 이용하여 좀 더 유연하게 하이브리드앱 / 웹앱을 구현할 수 있도록 플러그인 형태로 제공하는 것 입니다. 기본값으로는 외부 Navigation이 막혀있기 때문에 webview 내부에서 외부 http / https로의 주소이동 시 웹뷰내에서의 이동이 아닌 외..

JAVA/자바크롤러

[자바를 이용한 크롤링] selenium 맛보기

Selenium 맛보기 selenium IDE를 통해 손쉽게 브라우저 자동화 스크립트를 작성하고 실행해보면서 브라우저 자동화가 무엇인지 / 크롤링에 어떻게 활용되는지 한번 확인해보겠습니다. Selenium 설치 편의상 chrome 브라우저에서 진행하겠습니다. 크롬브라우저 selenium IDE 설치하기 크롬브라우저에서 위의 링크를 통해 Selenium IDE를 설치하시기 바랍니다. 다음과 같이 우측에 IDE아이콘이 생성된걸 확인하실 수 있습니다. IDE아이콘을 클릭하게되면 다음과 같이 IDE가 뜨게됩니다. 지금현재 보시는 화면은 제가 포스팅한 http://team404.tistory.com/9?category=1006683 글에 자동으로 댓글을 달 아주는 스크립트를 작성했습니다. 스크립트를 설명드리자면 ..

JAVA/자바크롤러

[자바를 이용한 크롤링] - selenium 이란?

selenium ? selenium 이란 여러 언어에서 웹드라이버를 통해 웹 자동화 테스트 혹은 웹 자동화를 도와주는 라이브러리 입니다. 공식 홈페이지에는 다음과 같이 selenium 을 소개하고 있습니다. Selenium automates browsers. That's it! What you do with that power is entirely up to you. Primarily, it is for automating web applications for testing purposes, but is certainly not limited to just that. Boring web-based administration tasks can (and should!) be automated as well...

JAVA

[Collection / Set ] Set 자료구조

[Set 자료구조] Set과 Map 은 통칭 Map 계열로 불린다. 이유는? 값을 넣어줄 때 키 이름과 데이터를 한쌍으로 넣어주기 때문에. - Set과 Map은 인덱스번호를 보유하지 않는다. - 키 값은 중복을 허용하지 않는다. [Set의 종류] Set은 크게 HashSet, TreeSet, Linked HashSet 으로 나뉜다. HashSet - 데이터를 추가하더라도 순서대로 보유하지 않는다. LinkedHashSet - 데이터를 추가한 순서대로 추가된다. TreeSet - 키값을 기준으로 알파뱃순으로 정렬되어 추가된다. (키 값을 넣지 않았을 경우는 값으로 정렬한다). [Set Method] add(Object) - Element 를 추가한다. size() - Element 갯수를 반환한다. rem..

JAVA

[컬렉션] 컬렉션에 대하여

컬렉션 인터페이스 종류 Collection : 모든 자료 구조의 부모인터페이스, 객체의 모임 Set : 집합(중복되지 않는 원소)을 나타내는 자료 구조 List : 순서가 있는 자료 구조로 중복된 원소를 가질 수 있다. (ArrayList, 인덱스로 접근) Map : 키와 값들이 연관되어 있는 사전과 같은 자료구조 Queue : 일종의 대기열과 같이 들어온 순서대로 나가는 자료구조 (First In First Out) [Collection 이 제공하는 메소드] int size() : 원소의 갯수를 반환 boolean isEmpty() : 공백상태일 경우 true를 반환 boolean contains(Object o) : o를 포함하고 있으면 true boolean add(E element) : 원소추가 ..

heeman
'분류 전체보기' 카테고리의 글 목록 (2 Page)