programing/java(7)
-
팩토리 패턴 정리
factory pattern은 유명한 디자인 패턴 중 하나이다. 이것 역시 JDK 및 우리가 잘 알고 있는 Spring, Struts 프레임워크에 많이 사용되고 있다.super class와 여러개의 sub class가 있는 상황에서 input이 발생하면 하나의 sub class를 반환해야 할때 factory pattern이 사용된다. factory class는 client class로 부터 인스턴스를 생성하는 책임을 가져온다.슈퍼 클래스factory pattern에서 super class는 interface, abstract class 또는 일반적인 java class가 될 수 있다. 예제에서 super class 로 abstract class를 사용하는데, 테스팅을 위해 toString() method..
2018.03.19 -
싱글톤 패턴 정리
예전 블로그에서도 singleton 에 대한 글을 쓴적이 있다. 그때는 매우 단순하게 적었으나 이번에는 조금 방대할 것이다. 단일 인스턴스를 다양하게 만들 수 있는 방법을 예제로 통해 한번 알아 보도록 하자.singleton 이란?프로그래밍 세계에 OOP 의 개념이 생기면서 객체 자체에 대한 많은 연구와 패턴(pattern)들이 생겨났다. singleton pattern은 인스턴스가 사용될 때에 똑같은 인스턴스를 만들어 내는 것이 아니라, 동일 인스턴스를 사용하게끔 하는 것이 기본 전략이다. 프로그램상에서 동일한 커넥션 객체를 만든다던지, 하나만 사용되야하는 객체를 만들때 매우 유용하다. singleton pattern은 4대 디자인 패턴에 들어갈 정도로 흔히 쓰이는 패턴이다. 물론 core java(j..
2018.03.19 -
maven에 대해..
Maven은 크게 두가지 기능이 있다. 첫번째 라이브러리 관리 기능이다. Java로 개발을 하다보면 Spring, jdbc, junit, mybatis등 필요한 라이브러리들이 많다. 이걸 .zip형태로 다운받아서 수동으로 라이브러리를 추가 해줘도 된다. 수동으로 하는 방법이 방법이 훨씬 직관적일 수 있으니까. 이를테면 덧셈을 할 때 '1 + 1 = 2'라고 배우기 전에 사과 두개를 그려 놓고 '사과 한개에 사과 한개가 더 있으면 사과 2개이다.' 라고 하면서 배우는 것과 같은 이치이다. 나중에는 내가 덧셈을 배울 때 사과로 배웠는지 산까치로 배웠는지 잊어버리듯이 메이븐의 라이브러리 관리는 우리가 처음에 수동으로 라이브러리를 다운로드 받고 경로를 추가해주던지 복사해 주던지 하면서 외부 라이브러리를 관리 하..
2018.03.19 -
Node.js vs Java 구조적 차이
Node.js Architecture - Single Threaded Event Loop (https://www.journaldev.com/7462/node-js-architecture-single-threaded-event-loop)링크를 참고하여 작성된 글이다. 이번 글은 Node.js의 구조를 다뤄본다. 단순히 Node.js에 대한 글이 아니기에, 도움이 될만한 글이라 생각하기에 읽고 판단하길 바란다. 기본적으로 많은 웹 어플리케이션은 멀티 스레드 기반의 구조를 따른다. 간단하게 예를 들자면, Java에서 동시 요청을 처리 하기 위해 멀티 스레드를 이용한다고 생각하면 된다. 하지만 Node.js를 알고 있다면 싱글 스레드를 기반으로 한다고 들어봤을 것이다. 싱글 스레드라면 동시 요청에 대해 비효율적..
2017.11.30 -
static에 대한 고찰
자바에서는 객체를 사용해야 할때 반드시 new 키워드로 인스턴스화 시켜줘야 쓸 수 있다. 이 부분에 대한 이해가 부족해서 C/C++에서 JAVA로 넘어오기가 굉장히 힘들었다. static 키워드에 대해 정리하면서 그간의 이해되지 않았던 부분에 대해 마무리하고자 한다. 출처: http://rockdrumy.tistory.com 1. 클래스를 설계할 때, 멤버변수 중 모든 인스턴스에 공통적으로 사용해야하는 것에 static을 붙인다.- 인스턴스를 생성하면, 각 인스턴스들은 서로 독립적이기 때문에 서로 다른 값을 유지한다. 경우에 따라서는 각 인스턴스들이 공통적으로 같은 값이 유지되어야 하는 경우 static을 붙인다. 2. static이 붙은 멤버변수는 인스턴스를 생성하지 않아도 사용할 수 있다.- stat..
2017.05.11 -
초보 개발자에게 권장하는 객체지향 모델링 공부 방법
일단 이 글을 읽기전에 말하고 싶은 부분이 있다. 아마 내가 이렇게 얘기하면 이 글을 읽지 않을 수도 있다. 하지만 이게 현실이니... 본인도 처음에는 객체지향에 대한 개념을 제대로 모르고 MVC패턴까지 사용하고 그렇게 해온게 사실이다... 첫 회사에 들어가고 답답한 마음에 구글도 뒤져보고 책도 찾아보면서 개념을 읽어보니 아! 이게 이랬었네? 이런 생각이 들었다.. 사실 아직 제대로 모를수도있다... 하지만 현업에서의 현실은 세팅 된 상태에서 코드를 짜는 것이 대부분이고 소규모 프로젝트에서는 패턴화 시키는 것이 비효율이라고 느끼는 부분이 대다수이기 때문이다. 얼마전에 한 AA(Application Architect)분은 솔직히 보통 전자정부프레임웍에서 service(interface)부분은 정말 쓸모없는..
2017.05.11