본문 바로가기

Java24

로버트 마틴이 말하는 Factory Pattern 이란 무엇인가? Photo by Joshua Sortino on Unsplash 반 버논의 도메인 주도 설계에서 팩토리 패턴에 대한 설명이 나옵니다. 반버논이 말하는 팩토리 패턴이란? 이 때와 반버논 책과 중복된 내용도 있지만, 평소 팩토리패턴에 대해서 생각하던 부분과 마침 책에서 다시와서 읽으면서 느낀바를 다시금 정리하고자 관련 내용을 적습니다. 배경 클린 소프트웨어 라는 책은, 객체지향프로그래밍 원칙인 SOLID에 입각한 샘플 프로젝트 코드와, 물론 SOLID도 설명하구요. 마찬가지로 SOLID 원칙 중, 의존 관계 역전 법칙(DIP)에 해당하는 부분을 설명하기 위해 팩토리 패턴을 언급합니다. 개인적으로, DIP를 위해서 다양한 방법이 존재하는데, 템플릿 메소드 패턴- 전략패턴등 여러 방법이 있다고 생각합니다. 팩토.. 2020. 9. 9.
Java에서 Jar 와 War 와 의 차이는 무엇일까? 1. 들어가기 스프링 이니셜라이저를 통해 생성하기 위한 선택사항으로 중간에 package 에 Jar, War 가 있다. 여기서 Jar 와 War의 차이를 이해해보려 한다. 2. Jar? War? Jar(Java Archive) / War(Web Application Archive) 위키의 내용을 참고하면 JAR(Java Archive, 자바 아카이브)는 여러개의 자바 클래스 파일과, 클래스들이 이용하는 관련 리소스(텍스트, 그림 등) 및 메타데이터를 하나의 파일로 모아서 자바 플랫폼에 응용 소프트웨어나 라이브러리를 배포하기 위한 소프트웨어 패키지 파일 포맷이다. ... JAR 파일은 자바 런타임이 효율적으로 애플리케이션을 배치(디플로이)할 수 있는 수단으로 설계되었다. 자바 애플리케이션을 구성하는 클래스.. 2020. 8. 24.
Spring5 를 왜 사용해야되는건가?(with Tody Lee) 우연히 재미있는 유튜브 동영상을 시청했습니다. 구글 알고리즘에 의해서 노출되었는데, 제목에 이끌러 재생 버튼을 눌렀습니다. "자바9와 Spring5로 바라보는 Java의 변화와 도전" youtu.be/BFjrmj4p3_Y 해당 동영상에서 말하는 내용에 제가 느낀바 추가해서 중요하다고 생각되는 부분만 정리했습니다. 그리고 실제로 코드로 작성하는 행위까지 이어질 예정입니다. Spring 5 가 2017년 9월 27일출시됐는데, 지금이 2020년이니까, 3년이 지난 시점에서 여전히 Spring5는 사용하는 곳보다 사용하지 않는 곳이 더 많습니다. 이 글을 쓰는 저 또한 Spring5를 사용해본 경험이 없습니다. 애노테이션 기반의 스프링 버전 4.x 를 베이스로 하는 SpringBoot만 사용해왔습니다. 스프.. 2020. 8. 23.
모니터란 무엇인가? 자바 모니터 자바 스레드 동기화 모델은 "모니터"라는 개념을 적용하고 있다. 모니터에 대해서 먼저 간단하게 살펴보고 자바 동기화에 대해 상세하게 살펴보자. Monitor(모니터)의 개념 하나의 데이터(객체)마다 하나의 모니터를 결합할 수 있으며, 모니터는 그것이 결합된 데이터(객체)가 동시에 두개 이상 의 스레드에 의해 접근 할 수 없도록 막는 잠금(lock)기능을 제공함으로써 동기화를 수행한다는 것이 주된 내용이다. 즉, 데이터(객체)에 모니터를 결합하면 하나의 스레드가 그 데이터를 사용하는 동안에는 다른 스레드들이 그 데이터를 사용할 수 없게 된다. 자바에서는 synchronized 메소드가 선언된 객체와 synchronized 블럭에 의해 동기화되는 모든 객체에 고유한 모니터가 결합이 되어 동기화 .. 2019. 7. 21.