try-with-resources와 native 영역
소개 try-with-resources 구문과 native 자원의 관계 이해 대상 독자: 초보 Java 개발자 자바 관련 스터디를 하고 있는데, 이번엔 try-with-resources와 관련된 주제로 얘길 나누었습니다. (이 주제는 이펙티브 자바, 자바의 신에서 꼭 등장하는 내용이기도 합니다) 정말 별 것 아닌 것 같지만, 해당 주제로 대화를 나누기 위해 정말 광범위하고 깊은 키워드들이 등장했었습니다. GC, JVM, JNI, native 영역, FileDescriptor 등등 기본적인 개념에 대해서는 알고 있었으나, 이들의 관계에 대해 간단하게 살펴보고 왜 try-with-resources를 쓰는지에 대해 좀 더 자세하게 알아보겠습니다. (FileDescriptor는 다른 포스팅에서 다룰 예정이라 이..
byTech/Java&Spring··
[SpringBoot] Intellij spring boot 프로젝트 생성 방법
서론 Intellij IDE를 이용해 Spring Boot 프로젝트 생성 방법에 대해 알아보겠습니다. 생성 방법 1. 프로젝트 생성 Intellij 최초 실행 시, [New Project]를 선택하거나 위 사진처럼 [File] - [New] - [Project]를 선택하는 방법이 있습니다. 2. Spring Initialzr 선택하기 Spring Initializr를 선택하고 설정값을 적어줍니다. 저는 Maven 대신 Gradle과 Java 버전 11을 선택했습니다. Maven에서 Gradle로 변경하는 방법은 꽤 번거로울 수 있으니 잘 선택하시기 바랍니다. 본인 환경에 맞게 설정하시면 됩니다. 3. Spring boot Dependencies 설정 Dependencies는 꼭 지금이 아니더라도 이후에 ..
byTech/Java&Spring··
[Springboot] 민감정보 숨기기 - Argument 입력
개요 지난번 작성했던 글에 이어 어떻게 민감정보를 숨기는지에 대해 작성하려고 합니다. application.properties 또는 application.yml 파일을 작성하다 보면 datasource.username, datasource.password와 같이 형상관리 페이지에는 숨기고 싶은 정보들이 존재합니다. 이를 숨기거나 암호화할 수 있는 방법이 여러 개 존재하는데, 이 중 사용자 입력을 통해 application.yml에 Argument 전달하는 방법을 포스팅합니다. 결과물 java -jar {jar 경로} --datasource.username=강승현 --datasource.password=비밀번호 --datasource.url=링크 위와 같이 --변수명=value 형태로 값을 전달하게 될 것..
byTech/Java&Spring··
Spring 환경에서 Docker run으로 jar에 argument 전달하기
사전 요구 지식 Docker에 대한 이해 및 실행하는 방법과 Dockerfile 사용법 Spring boot에서 cmd로 값을 입력 받아 사용하는 방법 cmd에서 java jar로 arguments를 전달하는 방법 환경 Spring boot 2.5.7 사용 gitlab-ci로 jar를 docker image로 만들어 빌드합니다. 여기서, 민감정보(datasource.password 등)는 사용자가 직접 입력하는 방식을 채택했으며 아래 사진처럼 username과 password는 사용자가 입력하는 값을 그대로 가져와 사용합니다. 이 때, docker run으로 해당 argument에 값을 전달하려면 어떻게 해야하는지 이 포스트에서 설명합니다. 하지만 해당 포스트에서 spring boot 내에서 argume..
byTech/Java&Spring··
2
[Spring] Swagger ui Failed to load API definition 에러
작업 환경 Windows10 Chrome 에러 내용 Failed to load API definition Fetch error undefined http://localhost:8080/v2/api-docs There was an unexpected error (type=Internal Server Error, status=500). The request was rejected because the header value "(생략)=김싸피상품&4444&5555; admin=관리자상품&3000&5555; csrftoken=c5vXn9tLMDisCLLstOQX78Tew0J5qE5htQkUrlE4DdHtKjEG4Pr9CxWdHRG0y4YL; _ga=GA1.1.462135574..
byTech/Java&Spring··
[Java] Error와 Exception에 대해
목차 이런 분들이 읽으시면 좋습니다 Checked, Unchecked를 처음 듣거나 긴가민가 하시는 분 Error와 Exception을 왜 함께 다루는지 궁금하신 분 실습 이전에 이론적 개념이 필요하신 분 왜 Error와 Exception을 함께 다루는가? Exception을 계속 타고 올라가다보면 최상위에 Throwable이 있습니다. 이 Throwable 하위엔 2가지 자식 클래스가 존재하는데, 각각 Error 클래스와 Exception 클래스입니다. 이미 다른 블로그 포스팅에 항상 Exception과 Error를 함께 설명하는 글이 많을텐데요, Throwable의 하위 자식이기 때문에 언급을 하고 넘어가는 것 같습니다. Error Class 에러는 간단하게 짚고 넘어가겠습니다. 백준과 같은 oj사이..
byTech/Java&Spring··
불러오는 중...