전체 글

전체 글

    21년 12월 JAVA 보안 취약점 이슈와 API 보안에 대해 학습

    21년 12월 JAVA 보안 취약점 이슈와 API 보안에 대해 학습

    JAVA 보안 취약점 이슈로 인해 Spring Framework 영향 2021년 12월 Log4j라는 자바 컴포넌트에서 악용하기 쉬운 취약점이 발견되었습니다 원인은 Log4j의 ldap JNDI 파서를 통한 원격 코드 실행입니다 원격 코드 실행이 되기 때문에 로그인 하든 안 하든 사용자를 해커가 원격으로 조종할 수 있는 의미가 됩니다 그렇게 되면서 자바 플랫폼을 위한 프레임워크(ex spring)를 사용하는 모든 서비스가 보안에 노출되었습니다. 자세한 내용은 아래를 참고! https://ko.wikipedia.org/wiki/Log4Shell API 보안 "API 보안은 사용자가 소유한 API와 사용하는 API 모두의 무결성을 보호합니다" 여기에서 무결성은 신뢰할 수 있는 서비스 제공을 위해서 완전성, ..

    gradle project에서 JMH 라이브러리를 이용해 java code 성능 측정

    gradle project에서 JMH 라이브러리를 이용해 java code 성능 측정

    JMH 이란? JMH(Java Microbenchmark Harness)는 openjdk에서 만든 라이브러리입니다 JMH는 JVM을 대상으로 한 자바 및 다른 언어로 작성된 nano/micro/milli/macro를 구축, 실행 및 분석하기 위한 java harness입니다 또한, JMH은 어노테이션 기반 방식을 지원하기 때문에 간단하고 안정적으로 벤치 마크 구현이 가능합니다. JMH이 안정적으로 벤치 구현이 가능한 이유는 JVM으로 실행되는 프로그램은 핫스팟이 바이트코드를 최적화 하는데 필요한 준비 시간, 가비지 컬렉터로 인한 오버헤드 등과 같은 여러 요소를 고려해야하기 때문입니다 gradle에서 JMH를 사용하기 JMH 벤치마크를 실행하는 권장 방법은 Maven을 사용하여 jar 파일에 의존하는 독..

    사용자 입력이 필요한 JUnit Test

    사용자 입력이 필요한 JUnit Test

    헤드퍼스트 디자인 패턴을 통해 템플릿 메소드 속 후크 알아보고 활용하기를 구현해보고 단위 테스트를 하고자하는데 사용자 입력을 받아야 하는 메소드가 있었다 private String getUserInput() { String answer = null; System.out.print("커피에 우유와 설탕을 넣을까요? (y/n) "); BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); try { answer = in.readLine(); } catch (IOException ioe) { System.err.println("IO 오류"); } return answer == null ? "n" : answer; } 해당 method..

    Spring Boot DevTools 사용

    Spring Boot DevTools 사용

    DevTools 탄생 배경 - 애플리케이션 시간 단축 애플리케이션에 코드 변경사항을 반영하기 위해 재시작을 했다 스프링 프레임워크는 애플리케이션 서버(ex:Java EE) 대신 서블릿 컨테이너를 선택해서 재시작 문제 해결을 시도했다 그러다 2014년 스프링 부트가 처음 출시되면서 내장형 서블릿 컨테이너라는 혁신을 이루었다 스프링 프레임워크는 서블릿 컨테이너에 애플리케이션을 배포하는 형식이라 서블릿 컨테이너에 종속된다 하지만 스프링 부트는 애플리케이션에 서블릿 컨테이너를 포함하는 방식으로 애플리케이션 시작 속도를 높인 것뿐만 아니라 더 이상 서블릿 컨테이너에 종속되지 않아 애플리케이션 배포 자체를 뒤바꿔버렸다 그러나 스프링 부트 개발팀은 내장형 서블릿 컨테이너로 애플리케이션 시간 단축에 만족하지 않았다 그..

    [Error] Set the spring.mongodb.embedded.version property or define your own MongodConfig bean to use embedded MongoDB

    [Error] Set the spring.mongodb.embedded.version property or define your own MongodConfig bean to use embedded MongoDB

    스프링 부트 실전 활용 마스터 책을 학습하던 중 de.flapdoodle.embed.mongo의 test 스코프 항목을 지우고 실행시키니 위와 같은 에러가 발생했다 property에 version을 명시하거나 embedded MongoDB을 사용 할 수 있도록 MongodConfig bean에 정의하라는 것 property에 version을 명시하고 싶은데 어떤 버전이 있는지 알 수 없어 구글링! 🥹 https://docs.spring.io/spring-boot/docs/current/reference/html/data.html#data.nosql.mongodb.embedded Data The Spring Framework provides extensive support for working with S..

    Flutter I/O Extended Korea 2022에 다녀오다!

    Flutter I/O Extended Korea 2022에 다녀오다!

    https://festa.io/events/2361 Flutter I/O Extended Korea 2022 | Festa! Festa에서 당신이 찾는 이벤트를 만나보세요. festa.io Flutter I/O Extended Korea 2022 6월 26일(일) 6개의 세션으로 이루어진 이번 행사!! 코로나 이후로 오프라인 행사는 거의 가지 않았는데 오랜만에 오프라인 행사에 참여해봤다! 👍 이 스티커 외에 이것저것 받긴 했지만! 정말 젤 귀여웠던 DART SIDE 스티커 ㅎㅎ https://dev.to/bsutton/the-dart-side-blog-42g1 https://www.youtube.com/watch?v=w_ezWG1yKQQ&t=2s 이번 행사는 Flutter 3.0을 비롯한 다양한 내용의 ..