반응형

IT 70

싱글톤 패턴 (Singleton Pattern)

싱글톤 패턴(Singleton Pattern) 이란 - 하나의 객체만을 생성하고, 그 객체를 사용하도록 하는 것이다. 다른 객체에서 해당 객체를 추가로 만들지 못하도록 한다. => 생성자 private 객체가 생성될 때 Heap 영역에 올라가는 시간과 메모리를 줄일 수 있다. 객체를 생성하면 그 클래스의 인스턴스는 Heap 메모리에 올라가고 그 인스턴스를 가리키고 있는 변수는 Stack 메모리 영역에 생기게 된다. 기본적인 싱글톤의 형태 public class Singletone { private static Singletone singletone;private Singletone() {}public static Singletone getInstance() {if (singletone == null) {..

IT/디자인패턴 2017.12.15

Android(안드로이드) 생명주기

Activity - 안드로이드 Application 의 기본 단위, 사용자 인터페이스를 화면에 표시하고 사용자의 입력을 받아서 처리하는 역할을 담당한다. system은 Activity들을 stack으로 관리한다.system은 메모리가 부족하면 정지 상태의 Activity를 언제든지 강제 종료할 수 있다. 상태 메소드 onCreate() - 액티비티가 시작되면 제일 먼저 호출한다. 이 영역에서 어플이 켜짐과 동시에 실행되어야 하는 작업들을 실행하게 된다. ex ) 어플 최초 실행시 로딩화면 등=> 앱 아이콘을 클릭할 때 생성되는 메인 액티비티든, 사용자 작업에 대한 응답으로 앱이 시작하는 다른 액티비티든 간에, 시스템은 onCreate() 호출하여 매번 Activity의 새 인스턴스를 생성한다. 액티비티의..

IT/Android 2017.12.14

Eclipse 기반 JRebel 사용법 (설치, 설정)

JRebel 이란 이클립스를 통한 웹 프로젝트 진행 시 java 또는 xml 파일을 수정하게 되면 서버를 재 시작 해야 하는 번거로움이 있는데, 서버 재 시작 필요 없이 변경 사항을 바로 적용해 줌으로서 생산성을 높여주는 기술이라고 생각하면 된다. JRebel 설정은 아래의 순서대로 하면 복잡하지 않게 설정할 수 있다. 1. https://my.jrebel.com/ 접속 2. Facebook 혹은 Twitter 로그인 3. 로그인 후 왼쪽 메뉴의 Install and Activate 메뉴 클릭하면 나오는 라이센스 키를 복사 4. Eclipse > Help > Eclipse Marketplace... 에서 jrebel 검색 후 최신 버전 설치 ( 설치 완료 후 Eclipse 재 시작 ) 5. Help > ..

IT/Etc. 2017.12.13

스프링 AntPathMatcher 사용 예제

Ant 경로 패턴은 URL mapping 등 경로를 지정할 때,유용하게 사용할 수 있는 경로 패턴이다. ? : 1개의 문자와 매칭* : 0개 이상의 문자와 매칭** : 0개 이상의 디렉토리와 매칭 스프링에서 어느 특정한 경로와 Ant 경로 패턴이 일치하는 지를 확인할 때 사용할 수 있는 org.springframework.util.AntPathMatcher 클래스를 제공하고 있다. AntPathMatcher 클래스의 사용 방법 예시 boolean match(String pattern, String path) 메서드를 이용하여 path가 pattern에 매칭되는지 확인할 수 있다. public static void main(String[] args) {String pattern = "/a/b/c/";// ..

IT/Spring 2017.12.04

jQuery를 이용한 스크롤 더보기

jQuery를 이용한 스크롤 더보기 (페이스북과 같은 스크롤을 이용한 더보기 기능) $(window).scroll(function() {// document 높이 (고정) console.log($(document).height());// browser 높이 (가변)console.log($(window).height());// 스크롤 위치 console.log($(window).scrollTop()); // console.log($(window).scrollTop() >= $(document).height() - $(window).height() - 100); // 스크롤이 적당한 위치에 오면 호출 ( 숫자 100의 값을 변경하여 더보기 호출할 높이를 수정할 수 있습니다.) if ($(window).scr..

자바스크립트 - location.href / location.replace()의 차이

location.href / location.replace() 개념적 차이 - location.href 는 프로퍼티 => location.href = 'example.page'; - location.replace() 는 메서드 => location.replace('example.page'); 기능적 차이 - location.href 는 새로운 페이지 이동 후 히스토리에 기록한다. - location.replace() 현재 페이지를 새로운 페이지로 변경, 히스토리에 기록하지 않음. (removes the URL of the current document from the document history) => replace()의 경우 뒤로가기를 통해 이전 페이지로 갈 수 없음.

관계연산자 ==, === 의 차이

==과, ===은 비슷하지만 깊게 들어가면 다른 의미를 가지고 있다. == Equal Operator=== Strict Equal Operator (strict 엄격한 이라는 의미로 좀 더 엄격하게 같은 지를 보는 연산자라 생각하면 됨.) == 연산자는 피 연산자가 서로 다른 타입이면 타입을 강제로 변환하여 비교.ex) 0 == '0' => true 0 == 0 => true === 연산자는 타입까지 비교.ex) 0 === '0' => false 0 === 0 => true ex) null == undefined => true null === undefined => false null 값이 없음을 명시적으로 표시, null 값을 할당 받은 상태 (객체 타입)undefined 변수 선언만 하고 값을 할당하..

자바스크립트 데이터 타입

NaN (Not a Number) - 해당 값이 숫자가 아니다.ex) parseInt("hello", 10); isNan() - 해당 데이터가 NaN인지 검사 해주는 자바스크립트 내장객체true = NaNfalse = Number Infinity - 0보다 큰 양의 무한대Infinity - 0보다 작은 음의 무한대 isFinite() - 인자값이 숫자이면서 무한대가 아니면 true,NaN 혹은 Infinity, -Infinity 이면 false Null - 값이 없음의도적으로 비어있는 값을 부여한 것 undefined - 초기화(선언) 되지 않았거나 값이 할당되지 않았음을 나타냄애당초 어떠한 값도 할당되지 않은 것

오버로딩(Overloading)과 오버라이딩(Overriding)

오버로딩 ( Overloading )- 같은 이름의 메서드를 여러개 가지면서 매개변수의 타입과 갯수가 다르도록 하는 기술 오버라이딩 ( Overriding )- 상위 클래스가 가지고 있는 메서드를 하위 클래스가 재정의 구분오버로딩 오버라이딩 메서드 이름 동일 동일 매겨변수, 타입 다름 동일 리턴 타입 상관없음 동일 메서드의 이름을 하나로 사용함으로 개발 시 효율성을 높일 수 있습니다.

IT/JAVA 2017.06.22

userAgent 구분 스크립트 (Android/iOS/Mobile)

/** * Android 단말기 인지 확인 */this.isAndroid = function() {try{ return (/android/i.test(navigator.userAgent.toLowerCase()));} catch(e) {self.log(e,"isAndroid");}}/** * iOS 단말기 인지 확인 */this.isIos = function() {try{return (/iphone|ipad|ipod/i.test(navigator.userAgent.toLowerCase())); } catch(e) {self.log(e,"isIos");}}/** * 모바일인지 판별한다. */this.isMobile = function() {try {return (/iphone|ipad|ipod|androi..

반응형