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..
안녕하세요 박스여우입니다. 오늘은 오랜만에 잡담을 하고자 합니다. 현재 저는 고등학교 2학년이며 모든 학생이 그렇듯이 시험기간에 있습니다. 성적에 그렇게 크게 신경쓰지 않는편이긴 한데, 사실상 마지막 시험이니 그래도 조금더 공부를 해보려고 합니다. (일주일 남은 시험공부를 아직도 시작 안해놓고서...) 아무튼 이런 저런 사정으로 인해 앞으로 1주일 정도는 포스팅을 못할것 같습니다. ■ Git 사용후기사실 Git을 처음 접해봤던것은 작년 말쯤이였습니다. 하지만 혼자 프로젝트를 많이 하다보니 Git의 필요성을 그리 크게 느끼지 못했습니다. 하지만 얼마전에 본 면접을 통해서 버전관리 프로그램의 중요성을 느꼈고, 우연한 기회로 웹 프론트엔드 부분에 대해 팀 프로젝트를 진행할 기회를 가지게 되어 Git을 사용할 ..
■ Anti-pattern우선 이에 대해 알아보기 전에 Anti-pattern에 대해 알아보도록 하겠습니다. 객체지향 프로그래밍에서는 싱글톤,옵저버 등 여러가지 디자인 패턴이 있습니다. 이러한 디자인 패턴은 객체지향 프로그래밍에 중요한 요소입니다. 하지만 이러한 디자인 패턴중에서 필요하거나 사용해야 하는 패턴도 있는 반면, 사용을 지양해야 하는 패턴들이 있습니다. 그런 패턴들을 Anti-pattern이라고 합니다. Anti-pattern은 실제 많이 사용되는 패턴일지라도 비효율적이거나 비생산적인 패턴을 의미합니다. 이러한 anti-pattern의 여러가지 예시를 알아보도록 하겠습니다. 1. God object하나의 클래스에 너무 많은 필드와 함수를 넣어서 너무 많은 것을 알고 너무 많은 것을 할 줄 아는..
■ 서론안녕하세요 박스여우입니다. 객체지향을 배울때 가장 혼동이 오고 무엇을 하는 개념이 될 수 있는 것들이 바로 인터페이스와 추상클래스가 아닐까 합니다. 이런 이유때문인지 회사의 면접을 볼때 객체지향을 잘 이해하고 있는지 확인하기 위한 단골 질문으로 나오는 문제이기도 합니다. 이번 포스팅에서는 인터페이스와 추상클래스에 대해 알아보도록 하겠습니다. ■ 인터페이스 - Interface인터페이스 무엇일까요? 우선 그 내용을 사전에서 찾아보도록 하겠습니다. 사물간 또는 사물과 인간 간의 의사소통이 가능하도록 일시적, 영속적인 접근을 목적으로 만들어진 매개체 라고 합니다. 위처럼 위키에서 서술된 내용이 사실 이번에 알아보고자 하는 인터페이스와 어느정도 일치하는 부분이 있습니다. 이에 대한 내용은 우선 인터페이스..