안녕하세요 박스여우입니다. 이번 포스팅은 요즘 프로젝트를 진행하며 사용하고 있는 Spring에 대한 포스팅을 작성해 보도록 하겠습니다. Spring에서는 JDBC를 사용하지만, Mybatis라는 프레임워크를 사용합니다. 따라서 이번 포스팅에서는 Spring에서 Mybatis를 이용하여 Mysql을 사용하는 방법에 대해 알아보도록 하겠습니다. ■Mybatis란?우선 Mysql을 연동하기 전에 Mysql을 관리하게될 Mybatis라는 녀석에 대해서 알아보고 넘어가도록 하겠습니다. Mybatis는 JDBC로 처리하는 상당 부분의 작업을 대신해주고 SQL 문을 코드로부터 완전히 분리해줄 수 있는 퍼시스턴스 프레임워크 입니다. Spring에서 직접 JDBC를 사용하여 DB를 사용할 수 있지만, Mybatis를 사..
안녕하세요 박스여우입니다. 이번에는 드디어 제가 배우고 싶었던 Spring에 대해 알아보고 개발하기 전 셋팅을 진행해 보고자 합니다. 사실 주변 사람들한테 들은바로는 Spring 자체는 어렵지 않은데 개발환경을 셋팅하는게 힘들다고 하더군요. 그래서 이번 포스팅을 통해 셋팅 방법을 기록해 보고자 합니다. ■ Spring? 우선 Spring이 뭔지부터 개념을 잡아야 할것 같습니다. (봄?) Spring 은 Java EE 의 복잡한 개발을 단순화 시켜줄 수 있는 Framework 입니다. Spring Framework는 Java EE의 개발을 POJO(Plain Old Java Object) 기반으로 개발할 수 있게 해 주며 Spring Framework를 이용하면 MVC(Model-View-Controlle..
안녕하세요 박스여우입니다. 프로젝트를 진행하던 도중 Stack Overflow에서 한 소스를 봤는데, static import와 제네릭 메소드라는 개념을 이용하여 코드를 작성했더군요. 저는 왜 그동안 한번도 접해보지 못했던 개념들일까요. 제네릭 클래스는 사용해 봤지만 제네릭 메소드는 사용해보지 못했네요.. 그래서 이번에는 이것들을 배우고자 포스팅을 하게 되었습니다. ■ Static Importstatic import는 Java 5.0 부터 추가된 기능입니다. static 메소드나 static 변수에 접근하기 위해 사용하는 import인데요, 정확한 사용방법은 예제를 통해 살펴보도록 하겠습니다. 123456package com.boxfox.statics; public class StaticTest{ pub..
안녕하세요 박스여우입니다. 이번 포스팅에서는 일반 프로젝트의 Export > Runnable Jar 파일과 같이 실행 가능한 Jar 파일을 Maven을 통해서 생성하는 방법에 대해 알아보도록 하겠습니다. ※ 해당 포스팅은 이전 포스팅의 다중 모듈 프로젝트를 기반으로 진행됩니다! ■ MANIFEST.MF (수동)실행 가능한 Jar 파일을 생성하기 위해서 Main 클래스가 존재하는 Jar 파일을 열어 MANIFEST.MF를 수정해야 하는 아주 귀찮은 과정을 거쳐야 합니다.저기 보이는 MANIFEST.MF 파일을 메모장으로 열어 class path를 설정하여 모듈과 라이브러리들을 등록하고 Main 클래스도 적어 주어야 합니다. 바로 이렇게 말이죠! 게다가 프로젝트에 사용되는 다른 모듈들의 build 된 Jar..
안녕하세요. 박스여우입니다. 요즘 일도 그렇고 프로젝트도 그렇고 Maven을 사용할 일이 잦은 것 같습니다. 이번 포스팅은 현재 진행 중인 프로젝트로 인해 필요한 부분인데요, 팀 프로젝트이다 보니 라이브러리 경로에 관련돼서 문제가 발생하고 하나의 프로젝트를 여러 명이어서 다루다 보니 조금 불편하더군요.. 그래서! Maven을 통해 이를 해결하고자 합니다. 이번 포스팅에서는 Maven의 다중 모듈을 구성하고 라이브러리를 관리하도록 해보겠습니다! 우선 Maven 프로젝트를 구성하기 전에 이전 포스팅 에서 Maven을 설치해야 합니다. Maven 설치를 마쳤다면 가볍게 넘어가 주시면 됩니다. ■ 다중 모듈 Maven Project!이번 포스팅은 이클립스를 기반으로 진행하도록 하겠습니다. (사실 Maven 프로..
Android, Winform, Swing, JavaFX등 대부분의 GUI 프레임워크들은 GUI를 다룰때 단일 쓰레드만을 지원합니다. 물론 별도의 쓰레드를 통한 작업이 가능하지만, GUI를 다루기 위해서는 다시 GUI를 담당하는 EDT(Event Dispatch Thread)를 이용해야만 합니다. 그 이유는 무엇일까요? ■ 멀티쓰레딩을 위한 시도AWT는 일반적인 다중 쓰레드를 지원하는 java library 로 시작하였습니다. 하지만 AWT를 이용함으로써 발생하는 교착상태와 경쟁 조건(race condition)등의 문제점이 발견되면서 단일 쓰레딩으로 방향을 돌렸고 그 이후에 개발된 Swing에서는 멀티쓰레딩을 제한한 설계를 하게 되었습니다. AWT외에 다른 프레임워크들도 다중 쓰레드를 사용하고자 하는 ..
안녕하세요 박스여우입니다. 오랜만의 포스팅 입니다. 이번에는 Maven에 대해서 알아보고자 합니다. 저도 평소 프로젝트 할때는 전혀 필요가 없었는데, 다른 오픈소스를 살펴보다 Maven이 필요해서 사용하다보니 Maven을 사용한 프로젝트가 오히려 더 편리하게 느껴져서 정리해 보고자 합니다. ■ Maven프로젝트를 진행하게 되면 단순히 자신이 작성한 코드만으로 개발하는것이 아니라 많은 라이브러리들을 활용해서 개발을 하게 됩니다. 이 때 사용되는 라이브러리들의 수가 수십개가 훌쩍 넘어버리는 일이 발생해 이 많은 라이브러리들을 관리하는 것이 힘들어지는 경우가 종종 발생하곤 합니다. Maven은 이러한 문제를 해결해 줄 수 있는 도구 입니다. Maven은 내가 사용할 라이브러리 뿐만 아니라 해당 라이브러리가 작..
안녕하세요 박스여우입니다. 이번 포스팅은 간단하게 Java에서 XML을 JSON 처럼 사용하는 방법에 대해 알아보도록 하겠습니다. ■ Main12345678910111213141516171819import java.io.IOException;import java.util.Properties; public class XmlMain { public static void main(String args[]){ StringOutputStream out = new StringOutputStream(); Properties props = new Properties(); props.setProperty("email.support", "donot-spam-me@nospam.com"); try { props.storeTo..
■ Anti-pattern우선 이에 대해 알아보기 전에 Anti-pattern에 대해 알아보도록 하겠습니다. 객체지향 프로그래밍에서는 싱글톤,옵저버 등 여러가지 디자인 패턴이 있습니다. 이러한 디자인 패턴은 객체지향 프로그래밍에 중요한 요소입니다. 하지만 이러한 디자인 패턴중에서 필요하거나 사용해야 하는 패턴도 있는 반면, 사용을 지양해야 하는 패턴들이 있습니다. 그런 패턴들을 Anti-pattern이라고 합니다. Anti-pattern은 실제 많이 사용되는 패턴일지라도 비효율적이거나 비생산적인 패턴을 의미합니다. 이러한 anti-pattern의 여러가지 예시를 알아보도록 하겠습니다. 1. God object하나의 클래스에 너무 많은 필드와 함수를 넣어서 너무 많은 것을 알고 너무 많은 것을 할 줄 아는..
■ 서론안녕하세요 박스여우입니다. 객체지향을 배울때 가장 혼동이 오고 무엇을 하는 개념이 될 수 있는 것들이 바로 인터페이스와 추상클래스가 아닐까 합니다. 이런 이유때문인지 회사의 면접을 볼때 객체지향을 잘 이해하고 있는지 확인하기 위한 단골 질문으로 나오는 문제이기도 합니다. 이번 포스팅에서는 인터페이스와 추상클래스에 대해 알아보도록 하겠습니다. ■ 인터페이스 - Interface인터페이스 무엇일까요? 우선 그 내용을 사전에서 찾아보도록 하겠습니다. 사물간 또는 사물과 인간 간의 의사소통이 가능하도록 일시적, 영속적인 접근을 목적으로 만들어진 매개체 라고 합니다. 위처럼 위키에서 서술된 내용이 사실 이번에 알아보고자 하는 인터페이스와 어느정도 일치하는 부분이 있습니다. 이에 대한 내용은 우선 인터페이스..