목록Java (9)
개발자의 오르막
Keyword FFmpeg , Process , JDK7 , Library , Framework Overview 우리는 개발을 할 때 서비스의 모든 것을 원천 개발하지 않습니다. 코드의 특성 상 재사용이 가능하기 때문에 서비스들간의 공통적인 기능들은 오픈소스로 제공되고 있으며, 이는 많은 개발자들의 시간을 단축시켜줍니다. 여러 오픈소스들은 GitHub 에서 수많은 개발자들의 이슈제기와 해결을 통해 리팩토링과 버전관리가 되고 있습니다. 위의 사이트는 MVNRepository 로 자바 개발을 할 때 필요한 라이브러리를 찾을 수 있는 사이트입니다. 각 라이브별 버전관리가 되어있으며, Maven, Gradle, Jar 등의 형태로 해당 라이브러리를 제공하고 있습니다. 우리는 dependency 에서 라이브러리 ..
Transfer Object Pattern Transfer Object Pattern 은 우리가 흔히 아는 VO (Value Object) 인 데이터를 전송하기 위한 객체이다. Dto 와 Vo 의 차이에 대해 여기서 사람들은 많은 혼동을 한다. 둘의 차이는 무엇일까? DTO (Data Transfer Object) Dto 란 데이터를 계층 간으로 전달하는 객체이다. 클라이언트에서 Controller 로 데이터를 받아오는 역할을 하며, Client 에서 Request 로 던지는 Parameter 를 그대로 받아오는 역할을 수행한다. 따라서 우리의 Service 에서 그대로 사용하는데 있어서 필드의 빈값이 존재할 수도 있고, 데이터 타입이 Service 에 적합하게 내려오지 않을 수 있다. 이에 대한 적합한..
Logstash 의 Jsonevent-layout 이란? Logstash 의 jsonevent-layout 은 log4j를 위한 json Layout Format 을 지원하는 라이브러리이다. log4j 에서는 로그 레이아웃을 지원하기 위해 Appender 형식을 사용하는데, Jsonevent-layout 은 log4j 의 Appender 를 커스텀하여 지원한다. log4j.appender.uploadProcessFile.layout=net.logstash.log4j.JSONEventLayoutV1 따라서 우리는 log4j 의 1.x.x version 을 그대로 사용하면서 logstash 가 지원하는 JsonLayout 을 log4j Appender 로 사용할 수 있다. 추가 라이브러리 jsonevent-..
프로젝트 에서 log4j-1.12.16 → log4j-2.12.4 로 마이그 작업 중 이슈 발생 NoClassDefFoundError: Lorg/apache/log4j/Logger; 이유는 프로젝트 에서 공통 Utils.jar 파일을 의존하고 있는데, 공통 Utils.jar 파일이 log4j-1.12.16 라이브러리를 의존하고 있음 따라서, log4j-1.12.16 라이브러리를 삭제하면 kollus_utils.jar 파일에서 해당 클래스를 호출할 때 위의 이슈가 발생함. quartz-all-2.1.3.jar 과 slf4j-api-1.6.1.jar 를 의존하고 있음 StdSchedulerFactory.class 가 org.slf4j.Logger 를 의존하고 있음 java.lang.NoClassDefFoun..
회사에서 log4j , String 형태로 출력하던 로그에서 특정 부분을 JSON 형태로 새로운 파일에 출력하기를 원하는 요구사항이 있었다. 요구사항 신규파일 format : JSON 파일을 플랫폼에 등록하는 일련의 과정 - 진행 상태 모니터링 오류 발생 시 오류를 확인에 필요한 로그 프로젝트 SPEC JAVA 1.7 log4j 1.2.16 결론부터 말하자면 log4j1.2.16 Version 만으로는 Json Format 지원이 어렵다. A) log4j 라이브러리 버전을 2.x.x Version 으로 올리기 B) logstash 와 같은 다른 라이브러리를 추가하여 Json Format 을 지원하기 따라서 A안과 B안이 있는데, 현재 회사의 프로젝트는 미들웨어 App 으로 여러 서버에서 동작하고 있기 때..
# java compile의 이해 - fastcampus 폴더 생성 - notepad Main.java → 해당 위치에 Main.java 란 메모장 생성 public class HelloMainCheck { public static void main(String[] args) { System.out.println("Hello"); } } - javac Main.java → 컴파일 - java Main → 자바실행 - fastcampus.co.kr 의 도메인 역순으로 패키지 생성 - package kr.co.fastcampus; java 파일안에 입력 -cp : classpath 의미 # jar의 이해 - 아카이빙 : 여러 파일을 하나의 파일로 묶는 것 manifest.txt 파일 생성 Main-Class..