본문 바로가기

싱글톤 패턴(Singleton pattern)을 쓰는 이유와 문제점 싱글톤 패턴(Singleton Pattern) 싱글톤 패턴애플리케이션이 시작될 때 어떤 클래스가 최초 한번만 메모리를 할당하고(Static) 그 메모리에 인스턴스를 만들어 사용하는 디자인패턴.생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나고 최초 생성 이후에 호출된 생성자는 최초에 생성한 객체를 반환한다. (자바에선 생성자를 private로 선언해서 생성 불가하게 하고 getInstance()로 받아쓰기도 함)=> 싱글톤 패턴은 단 하나의 인스턴스를 생성해 사용하는 디자인 패턴이다.(인스턴스가 필요 할 때 똑같은 인스턴스를 만들어 내는 것이 아니라, 동일(기존) 인스턴스를 사용하게함) 싱글톤 패턴을 쓰는 이유고정된 메모리 영역을 얻으면서 한번의 new로 인스턴스를 사용하기 때문에 메모리 낭비..
JAVA String, StringBuffer, StringBuilder 차이점 String, StringBuffer, StringBuilder의 장단점 및 차이점 자바에서 String과 StringBuffer, StringBuilder의 차이점을 알아본다. 앞서 이 클래스들의 공통점은 모두다 String(문자열)을 저장하고 관리하는 클래스들이 라는 것이다.(간단히 참고) String vs StringBuffer, StringBuilder String은 immutable(불변)하고 StringBuffer, StringBuilder는 mutable(가변)하다. 다시 말해서, String 클래스는 StringBuffer 클래스나 StringBuilder 클래스와 다르게 리터럴을 통해 생성되면 그 인스턴스의 메모리 공간은 절대 변하지 않는다. String literalString = "l..
WAS 와 웹 서버 차이 (WAS,Web Server) 그리고 아파치, 톰캣 WAS와 웹 서버 - 웹 서버 (Web Server)클라이언트가 서버에 페이지 요청을 하면 요청을 받아 정적 컨텐츠(.html, .png, .css등)를 제공하는 서버클라이언트에서 요청이 올 때 가장 앞에서 요청에 대한 처리를 한다.클라이언트의 요청을 기다리고 요청에 대한 데이터를 만들어서 응답하는 역할 (정적 데이터)CASE정적 컨텐츠를 요청(request)했나?1. 정적 컨텐츠구나! 내가 제공해줄게 => .html, .png 등 응답(response)2. 정적 컨텐츠가 아니구나.. 웹서버에서 간단히 처리 못하겠군. WAS에게 처리를 부탁해야겠다! => 결국 WAS가 처리해준 컨텐츠를 받은 웹서버는 응답(response)을 해줌대표 : Apache, nginx- WAS (Web Application S..
JAVA 인터페이스와 추상클래스 공통점, 차이점 정리 인터페이스(Interface) 와 추상클래스(Abstract class) - 공통점: 추상클래스와 인터페이스는 선언만 있고 구현 내용이 없는 클래스다.(자바8부터 인터페이스에 default method 구현이 가능해졌지만 일반적으로 인터페이스는 구현이 없다.)따라서 인터페이스와 추상클래스를 가지고 새로운 인스턴스(객체)를 생성할 수 없다.추상클래스를 extends로 상속받아 구현한 자식클래스나 인터페이스를 implements 하고 구현한 자식클래스만이 객체를 생성할 수 있다.=> 결국 자식클래스가 무언가 반드시 구현하도록 위임해야할 때 사용해야 한다.- 차이점 추상클래스추상클래스는 추상메서드(abstract method)가 하나라도 존재하는 클래스를 말한다.추상클래스는 추상메서드(abstract meth..
Spring 이클립스 encoding 설정 Spring(JAVA eclipse) encoding 설정 이클립스에서 스프링 개발환경 설정하기.1. 이클립스 에디터 인코딩 (encoding)프로젝트를 만들기 전에 사용할 파일들의 인코딩을 설정을 미리 하는 것이 좋다.(나중에 파일 옮겼을 때 깨지거나 할 수 있기 때문에 UTF-8로 미리 통일 시켜놓는 것이 정신건강에 좋음) - eclipse 상단 메뉴의 Window > Preferences 클릭- 왼쪽 상단 검색창에 'encoding' 입력 (검색되는 모든 것들의 인코딩을 UTF-8로 변경하면 완성) - General > Content Types 에서 Java Class File 선택 후 default encoding에 UTF-8을 입력하고 update! - General > Workspace 에서 ..
Web - 쿠키와 세션의 차이, 용도, 사용법(cookie,session) 웹에서 쿠키와 세션 쿠키와 세션을 사용하는 이유 → HTTP 프로토콜의 특징이자 약점을 보완하기 위해서 사용한다. HTTP 프로토콜의 특징 비연결지향(Connectionless) HTTP는 클라이언트가 요청(Request)을 서버에 보내고, 서버는 클라이언트에게 적절한 응답(Response)을 주고 연결(Connection)을 끊는 특성이 있다. HTTP1.1 버전에서는 커넥션을 계속 유지하고 요청(Request)에 재활용하는 기능이 추가되었다. (HTTP Header에 keep-alive 옵션을 주어 커넥션을 재활용하게 한다. HTTP1.1 버전에서는 디폴트(default)옵션이다. HTTP가 TCP위에서 구현되었기 때문에(TCP는 연결지향, UDP는 비연결지향) 연결지향적이라고 할 수 있다는 얘기가 ..
React 바인딩(이벤트/메서드 연결) 자바스크립트에서 바인딩 (Javascript Binding) 결론부터 이야기하면 key point는 자바스크립트에서 "this"에 대한 이해가 완벽히 되어있어야 한다.리액트 바인딩을 알아보기 전 자바스크립트에서 바인딩을 알아본다.자바스크립트에서 객체안의 메서드에서 this는 그 메서드가 포함된 object를 가리키게 된다. 12345678var obj = { prop: 'Hello', sayHello: function() { console.log( this.prop ); }}; obj.sayHello(); //"Hello" 즉, 위의 예제에서 sayHello 메서드안의 this는 obj객체가 되어 obj.prop인 Hello를 전달받아 콘솔 로그를 찍는다.obj의 sayHello()를 다르게 출력해보면 ..
Node MVC패턴 웹 애플리케이션 만들기 Node MVC패턴 웹 애플리케이션 만들기 Node.js 기본기를 다시 잡으면서 MVC패턴을 적용해서 웹 애플리케이션을 만들어 본다.(도서 Node.js 6.x 블루프린트 Chapter1 예제)