분류 전체보기 269

[IntelliJ] 외부모듈(JAR)의 class 파일 코드가 compiled code로 표기되는 현상

최근들어 두번이나 해당 현상을 겪었습니다. 두번째도 첫번째와 동일하게 구글링(...)을 하는 절 보며 블로그에 정리해서 올려야겠다는 생각을 가지게 되었습니다. 해당 현상 발생 시 저처럼 해결이 잘 되길 바라겠습니다. Problem 위의 이미지에서 보는 바와 같이 인텔리제이에서 외부 모듈(JAR)의 class 파일을 열었을 시 /* complied code */로 표기되는 현상을 최근들어 두번이나 겪게 되었습니다. 한번은 회사에서 IDE 툴인 intelliJ를 함께 사용하기 시작했는데 이 때와 두번째는 개인적으로 사용하는 intelliJ 버전을 업데이트 하면서 겪게 되었습니다. 원인은 디컴파일러가 제대로 코드를 해석하지 못해서(?) 라고 합니다. Solution plugin 중에 `Java Bytecode..

Tools 2022.09.26

[Junit] private Method 테스트하기2(Exception 검증)

얼마전 Junit 중 privateMethod를 테스트 하는 중에 실패했을 경우에 대해 test를 하려다 의도한 대로 풀리지 않아 해당 테스트를 진행하지 못하고 있었습니다. 그러던 중 토비의 spring 책에서 해당 관련된 exception 확인하는 방법을 찾았습니다.ㅎㅎ 생각보다 쉬운 방법이었지만 그때 당시에는 떠오르지 않더군요!ㅎㅎ(분명 해당 exception 내부를 확인하면 될것 같았지만 그 내부를 확인하는 방법을 몰라서 못했었었네요ㅠㅠ) 그래서 관련된 해결법을 작성해 보도록 하겠습니다. Before we go further 이 글은 private method를 junit으로 Exception테스트를 어떻게 하는지에 관해 작성되었습니다. 만약 private method를 junit으로 어떻게 테스트..

Languages/java 2022.09.23

[Spring Boot] application.properties vs application.yml

이번에 토이 프로젝트 한개를 만들어보기 위해 오랜만에 개인적으로 프로젝트를 생성해 보았습니다. 평소에도 많이 생각했지만 SI에서 기능개발위주만 하다 보니 확실히 이런 부분에서 아주 취약하다는 사실을 다시 발견했습니다. 새로움 프로젝트를 아예 생성할 일이 없다보니 처음부터 막혀서 버벅거리는 절 발견했습니다. 어찌보면 가장 기초적인 부분을 잘 하지 못하는 절 보고 조금씩 정리해야겠다고 깨달았습니다. 프로젝트를 처음 생성했을 때 만드는 application.properties 파일에 관련해서 다시 리마인드 하며 정리해 보겠습니다. application.properties 우선 처음 프로젝트를 생성하게 되면 .properties 파일이 생성되는것을 확인할 수 있습니다. .properties 파일은 key-val..

[JUnit] private Method 테스트하기!

사실 private Method가 test가 되지 않은 이유는 기본적으로 테스트할 필요가 없게끔 구현하라는 의도가 깔려 있다고 생각합니다. 하지만 가끔 private Method를 테스트 해야할 때가 존재합니다. 저 같은 경우 중간에 인수인계받은 작업이 존재하는데 spec이 변경되면서 해당 Method만을 테스트 해야 하는 상황이 존재했습니다. 검색하고 나름의 방법을 찾은 후 해당 방법에 대해 정리해 보겠습니다. Method와 ReflectionTestUtils 테스트 방법에는 여러가지 방법이 있지만 여기서는 두가지 방법을 다뤄보겠습니다. java.lang.reflect.Method org.springframework.test.util.ReflectionTestUtils TestCode 아래와 같이 Pr..

Languages/java 2022.09.07

[IntelliJ] Editor Tab 한개만 사용하기

저는 여러대의 노트북을 사용하다보니 각각의 intelliJ의 사용 환경이 달라 매번 설정합니다. 그러다 이번 역시 설정을 수정하는데 하는 방법을 또다시 검색하는 절 발견할 수 있었습니다. 그래서 제 블로그를 뒤져보니 이미 글을 작성했더군요 ㅎㅎ 그래서 v2로 한번 더 작성하기로 했습니다. 예전에 한번 작성했던... 기본 설정(여러개의 Editor Tab) 대부분의 IDE Tool은 여러개의 Editor Tab이 사용가능하게 기본으로 설정되어 있습니다. 하지만 intelliJ는 cmd + e 혹은 ctrl + e 기능으로 쉽고 빠르게 접근할 수 있는 기능을 제공하고 있습니다. 따라서 개인적으로 위의 상단바처럼 여러개의 탭이 존재할 필요가 없다고 생각됩니다. 없으면 intellij가 훨씬 깔끔해 지는 기분이..

Tools 2022.09.02

[Kafka] Kafka? 카프카의 기본지식

몇일 전 동료가 kafka 방식의 Subscriber를 구현하는데 어려움을 겪고 있어 잠깐 함께 관련된 것들을 검색하고 고민해 보있습니다. 그러던 중 문득 든 생각이 무심코 kafka(카프카)를 사용은 하고 있는데 알고 있는 지식이 거의 없다는 것을 알았습니다. 그래서 카프카의 기본 지식에 대해서 정리해 보려고 합니다. 궁금하신 사항이나 잘못 기업된 사항이 있다면 댓글 달아주세요. Kafka MSA(Micro Service Architecture)로 어플리케이션이 구성됨에 따라 각각의 서비스들이 통신하는 방법이 복잡해 졌습니다. 이로 인해 데이터 전송 및 배포에 어려움을 겪게 됩니다. Apache Kafaka는 이러한 문제를 해결하기 위해 Linked In에서 개발한 오픈소스입니다. Kafka는 아래의 ..

CS 2022.08.25

[Java] 함수형 인터페이스(Functional Interface) 알아보기

요즘 프로그램을 짤 때 Stream API를 사용하고 있습니다. 하지만 Stream에서 주로 사용되는 여러가지 Class Type들이 너무 낯설더군요. Stream을 사용하기 위해선 lambda를 사용해야하고 lambda를 사용하기 위해선 함수형 인터페이스(Functional Interface)를 사용해야 하더군요. 그래서 함수형 인터페이스(Functional Interface)에 대해 알아보았습니다. 검색을 해 보니 Stream, lambda 그리고 Functional Interface 세가지를 활용한 프로그래밍을 Functional programming이라고 하더군요. 다음에는 Functional programming을 알아보겠습니다. 아래에 정리한 코드들은 모두 gitHub에 올려 놓았습니다. 필요..

Languages/java 2022.08.04

[RegEx] 정규식 사용하기(vsCode)

vsCode를 활용한 정규식 사용 프로젝트를 진행함에 있어 기존의 코드들을 형태는 비슷하지만 조금 수정해야할 일이 종종 있습니다. 이럴 때 하나씩 수정을 하다 보면 회의감이 강하게 들더군요. 이때 제 선임분 중 한분이 terminal에서의 sed 사용과 vsCode에서의 regularExpression을 사용하여 손쉽게 변경하는 방벙을 알려 주셨습니다. sed는 추후에 따로 다뤄보고 이번에는 vsCode를 활용하여 제가 실제 사용했던 방법들을 작성해 보도록 하겠습니다. 정규식(Regular Expression) 정규 표현식(正規表現式, 영어: regular expression, 간단히 regexp[1] 또는 regex, rational expression)[2][3] 또는 정규식(正規式)은 특정한 규칙을..

Languages 2022.07.26

[Java] Lombok의 @ToString(부모의 toString() 함께 출력하기)

이번에는 프로젝트를 진행하는 중에 간단하지만 자주 잊어먹는 기능 중 하나인 lombok의 @ToString()에 대해서 작성해 보겠습니다. 예전에 프로젝트를 진행 중에 분명 사용했었는데 @Override를 직접 작성해서 사용하고 있었네요. 그럼 아래에 작성해 보도록 하겠습니다. code @Data public class ParentDTO { private String i; private String am; private String your; private String papa; } @Data public class ChildDTO extends ParentDTO { private String scream; } @Data public class LombokClientDTO { private ParentD..

Languages/java 2022.07.06

[Java] Enum변수를 json으로 변환하여 Enum 값 전달하기

회사에서 근무하던 중 DTO를 json으로 변환해 넘겨주는 작업을 했습니다. 이때 값을 넘기는 도중 발생하였는데 확인해 보니 enum의 값이 제대로 넘어가지 않는 문제였습니다. 이 문제를 해결한 기록을 남기고자 합니다. 발단 DTO 내부에 Enum 변수를 들고 있는 상황입니다. Enum변수에 enum을 전달 한 후 json으로 변환 하였을 때 enum의 값이 출력되는게 아니라 name이 출력되는 현상을 겪었습니다. DTO package com.example.dailyProgramming.enum_test; import lombok.Data; @Data public class Enum_getTest { String str; TestEnum1 enumTest; public enum TestEnum1{ AA(..

Languages/java 2022.06.30
728x90
반응형