목록Java (4)
잡동사니를 모아두는 서랍장
reasource 내의 파일 내용을 참조해야하는 로직이 있었다. 늘 그렇듯 자연스럽게 File 을 사용했다. ObjectMapper mapper = new ObjectMapper(new YAMLFactory()); File myFile = new File(getClass().getClassLoader().getResource("test.yaml").toURI()); //error MyTemplate myTemplate = mapper.readValue(myFile, MyTemplate.class); 로컬에서 ide로 실행시켰더니 멀쩡히 동작. 그래서 다 됐다~하며 도커에 올리려니... Caused by: java.lang.IllegalArgumentException: URI is not hierarchi..
아래는 테스트 코드 package com.kakao.keyword; import java.beans.PropertyDescriptor; import java.lang.reflect.Field; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; public class ReflectionTest { private Class clazz; @BeforeEach public void init() { clazz = (Class) TestClass.class; } @Test public void test() throws Exception { T instance = clazz.getDeclaredConstructor().newInst..
자바 개발자란 사람이 이 5원칙도 제대로 기억 못하고 맨날 찾아보고 있다니...정리하며 다시 기억하자. 1. 단일 책임 원칙 (Single Responsiblity Principle, SRP) - 클래스는 단 하나의 책임만 가질 것. 클래스 단일 책임에 관한 원칙. 여러 기능을 넣지 말자. 나중에 내부 기능(책임)들 끼리 결합도가 높아진다. 이렇게 된 상황이면 다른 클래스로 쪼개보자. 2. 개방-폐쇄 (Open-Closed Principle, OCP) - 소프트웨어 구성요소(클래스, 함수, 모듈, 컴포넌트 등등)은 확장에는 열려있고, 변경에는 닫혀있어야 한다. 3. 리스코브 치환의 원칙 (Liskov Substitution Principle, LSP) - 자식 클래스(서브 타입) 은 부모 클래스(기반 타..
저번에 팀원 한분이 물어보고 다니길래 나도 헷갈려서 정리. jar에서 ear로 갈수록 단위가 크다. jar (java archive) 하나의 application 기능이 가능하도록 java파일 등을 압축하고 지원. 라이브러리, 리소스, property 파일들을 포함한다. JDK에서 제공하는 Java Archive Tool을 이용하여 jar 파일에 대한 작업을 할 수 있다. (Jar tool) path 등의 경로를 유지하기 때문에 배포된 jar 파일을 사용하는 사용자들은 각 파일들에 대한 path 문제 신경 X. war (web archive) jar와 달리 웹 어플리케이션을 지원하기 위한 압축방식. Web container는 서블릿, jar파일과 WEB-INF폴더에 있는 web.xml 파일을 가지고 있는..