# application.properties

28개의 포스트
post-thumbnail

[H2 Database] Database "mem:testdb" not found 해결방법

문제상황 스프링부트에서 http://localhost:8080/h2-console H2 데이터베이스 웹 콘솔에 접근하던 중 다음과 같은 오류가 발생하였다. 오류 메세지 현재 application.properties 해결방법 application.properties를 수정 datasource.url 을 `jdbc:h2:mem:t

2023년 9월 9일
·
0개의 댓글
·

application.yml .properties 차이

스프링부트를 공부하다보면 application.yml 혹은 application.properties 파일을 보게된다. 둘다 서버정보나 profile 등을 설정할 수 있는 외부설정파일이지만, 어떤 경우에 yml을 쓰고 properties를 쓰는지 궁금해서 공부해보고자 한다. 외부설정파일 실제 프로젝트를 진행하다보면 dev, stg, prod 등 운영환경에 따라 서버 설정이나, 데이터베이스 설정 등을 다르게 설정한다. 이렇게 스프링부트 외적인 시스템과 연동할때 필요한 profile들을 정의하거나 프로그램이 실행되는데 필요한 속성들을 정의할때 application.yml application.properties를 사용하게된다. 스프링 initializr를 통해 프로젝트를 생성하면 application.properties가 생성되지만, 종종 yml파일로 변경해서 사용하는 경우가 있다. application.properties properties파일은 key=value

2023년 8월 7일
·
0개의 댓글
·
post-thumbnail

TIL - application.properties

문제 - github에 올라간 application.properties 파일 삭제하기 깃허브에 프로젝트를 올려서 팀원분들과 공유하기 위해 모든 파일을 올려두었다. 계속 하던대로 그냥 전부 포함해서 올렸는데, 알고보니 application.properties 파일은 올리지 않아야 한다는 내용들이 있었다 ..! 어떡하지 .. 하다가 방법을 알아냈다 ! > 0) application.properties 파일의 내용을 미리 복사해둔다. 1) 깃허브 상에서 application.properties 파일을 삭제한다. 2) 로컬 저장소에 삭제한 해당 브랜치의 내용을 pull 해온다 3) 로컬 저장소에 .gitignore에 application.properties 파일의 경로를 추가해준다. (제일 하단에 추가해주었다) 4) 원래 경로에 application.properties 파일을 다시 만들어 준 후, 복사해둔 내용을 붙여넣는다. 5) 깃허브에 다시 커밋하고, push

2023년 7월 7일
·
0개의 댓글
·
post-thumbnail

[Spring] application.properties

application.properties Spring과 관련된 설정을 할 때 사용되는 파일 자동으로 설정되고 있는 설정 값을 쉽게 수정할 수 있다. DB 연결 시 DB의 정보를 제공해야하는데 이러한 경우에도 이 파일을 이용하여 쉽게 값을 전달할 수 있다. 서버 port 변경 Apache Tomcat을 사용하여 서버를 실행하면 기본 port 설정이 8080으로 되어있다. application.properties 파일에서 server.port=8081이렇게 설정을 하면 서버의 port 번호를 ‘8080’에서 ‘8081’로 바꿔서 실행시킬 수 있다. ![](https://velog.velcdn.com/images/thing-zoo/post/590ffd08-9398-4bfc-9d7d-3

2023년 6월 23일
·
0개의 댓글
·
post-thumbnail

SpringBoot 메세지 발송/조회 API 설계 1 (요구사항, 사용기술, application.properties, Log4j)

✔ 프로젝트 요구사항과 필요성 > ### ✔ Maven 사용기술 부연설명 - •log4j-core는 로깅 프레임워크의 구현입니다. 로거 생성 및 관리, 로그 이벤트 처리, 적절한 어펜더에 로그 메시지 발송과 같은 로깅의 핵심 기능을 제공합니다. 또한 다른 대상에 로그를 작성하는 데 사용할 수 있는 구성 가능한 추가기 세트를 제공합니다. •log4j-api는 개발자가 로깅 프레임워크와 상호 작용하는 데 사용하는 API입니다. 개발자가 로거를 만들고 메시지를 기록하고 로깅 시스템을 구성하는 데 사용하는 로깅 인터페이스와 클

2023년 5월 21일
·
0개의 댓글
·

Application.properties 를 Application.yml로 바꾸기

Application.properties 란? Spring boot 는 외부 구성을 사용하여 속성을 정의하는 관행을 가지고 있습니다. 이를 통해 다른 환경에서 동일한 어플리케이션을 운영할 수 있습니다. 주로 속성파일, yaml 파일, 환경 변수, 및 명령 줄 인수를 사용합니다. 왜 사용할까? 아래는 application.properties 의 예시입니다. data source 에 대한 정보를 담고 있는 문장들입니다. 각 패키지의 계층적인 구조를 .을 통하여 구분하고 있습니다. 아래는 YAML 파일의 형식 예시입니다. 패키지의 계층적인 구조를 한 눈에 보기 쉽고, 코드의 반복도 줄어 직관성도 올라간 것을 확인할 수 있습니다. 그러면 기존의 코드를 어떻게 바꿀 수 있을까요? YAML로 변경하기 YAML 에는

2023년 5월 20일
·
0개의 댓글
·
post-thumbnail

[IntelliJ] Spring boot https 설정

keystore과 trust store을 만들어준다 파일은 3가지를 만들껀데 헷갈리지 않게 써두겠다 keystore 만들기 keystore에서 인증서 추출 trust-store 만들기 application.properties application.yml 내가 막 임의로 제작한 인증서라서 브라우저에서 인증서를 신뢰할 수 없다고 띄운다 우리는 테스트니까 신경 안써두됨!! >참고 https://www.skyer9.pe.kr/wordpress/?p=2446 https://velog.io/@jummi10/keytool%EB%A1%9C-local%EC%97%90%EC%84%9C-SSL-%EC%9D%B8%EC%A6%9D%EC%84%9C-%EC%83%9D%EC%84%

2023년 5월 16일
·
0개의 댓글
·
post-thumbnail

SpringBoot 테스트를 위한 DB 격리

SpringBoot 테스트를 위한 DB 격리 DB 격리를 생각하게 된 계기 단위 테스트만 작성할 땐 @Transactional 어노테이션으로 DB 롤백이 가능 ✅ @SpringBootTest에서 RANDOMPORT나 DEFINEDPORT 를 사용하는 테스트에서는 적용 불가 ❌ @SpringBootTest RANDOMPORT, DEFINEDPORT 에서 @Transacation 롤백이 안되는 이유 RANDOMPORT, DEFINEDPORT를 사용하면 별도의 쓰레드에서 스프링 컨테이너가 실행 된다. 때문에 테스트와 별개의 쓰레드에서 스프링 컨테이너가 실행 되므로 하나의 트랜잭션으로 묶일 수가 없다. 해결 방법 테스트를 위한 DB 환경 구축 테스트 격리를 위한 모든 테이블 데이터 초기화 @AfterEach 를 사용해 DB 삭제 메서드 작성 @Sql어노테이션을 통

2023년 5월 10일
·
0개의 댓글
·
post-thumbnail

[SpringBoot] application.properties 한글 깨짐

문제발생 >순조롭게 프로젝트를 진행하던 중, postman 에서 응답을 받는데 한글이 아닌 ???를 받았다. 이게 뭔가… 일단 encoding 문제인 것 같아 차근차근 문제를 해결해보기로 한다. 이 문제를 해결하기 위해 여러 방법들을 찾아보았고 그 순서에 따라 글을 작성했다. 1. Postman incoding postman 페이지 자체에서 문제가 있나 ? 싶어 command + , 명령어를 통해 incoding 설정을 찾아보려 했으나 따로 그런것은 없었다. 즉, 서버에서 오가면서 charset을 어떤 것으로 설정하느냐의 문제였고, 위 오류를 제외하고 다른 요청 응답에서는 한글이 잘만 출력되는 것을 확인했다. 즉, postman 자체에는 문제가 없다. 2. intelliJ incoding 그렇다면,, 현재 Spring을 통해 개발하고 있는 intelliJ에 문제가 생긴 것은 아닌가 ? 라는 생각과 함께 command + , 명령어로 intelliJ 설정

2023년 4월 8일
·
0개의 댓글
·
post-thumbnail

[시행착오] @Valid를 썼는데 왜 Null이에요?

제목 그대로 왜 했는데 안될까? 에 봉착했다. 📌 Controller 관련 부분 📌 TmdbApiClient(Service 부분) 📌 application.properties 뭐 일단 이런 코드였다. 그런데 내가 너무 궁금했던 것은 @Value(${ttkey}) 왜 안들어가냐? 였다. 여러가지 찾아보기도 하였고 하였다. 그래서 계속 @Service가 있던 TmdbApiClient에서 오류를 찾고 있었지만 보이지 않았다. 그러다 크나큰 오류를 발견하게 되었다. 바로... Controller에 있는 부분 TmdbApiClient tmdbApiClient1 = new TmdbApiClient(); 이 친구가 문제였다. 왜냐하면 애초에 @Valid는 spring에서 제공해주는 기능이다. 그런데 애초에 내가 새롭게 @Service로 스프링 컨테이너에서 관리하여주는 객체가 아닌 따로 인스턴스를

2023년 4월 7일
·
0개의 댓글
·
post-thumbnail

TIL 48th 두번째 project

클론 코딩 따라서 만들어 본다고 해서, 저번주 기억(명확하게는 어제의 기억)을 살려서 프론트 고생을 덜하게 하려고 프론트 맴버들의 이야기를 위주로 의견을 수렴해 보니, 트위터를 하기로 했다. 첫 단추 망함 첫 단추.. git Organization을 사용하라고 해서 레포에 올릴라고 하니, 토큰을 만들라고 한다.. 그래서 만들어서 넣어주니 너무 .. 잘 돌아간다. 갑분 에러.. 위의 오류를 프로젝트 시작하자 마자 마주했다. .. 이제 무슨일?? 그래서 바로 뜨자 마자 트러블 슈팅에 올렸다 올리니.. 팀원이 하는 이야기는 .. application.properties 내용이 잘못 되서 그런거라고 한다. 받은 코드를 넣으니, 너무 잘 돌아간다. 나에게 온 api는 4개라서 후다닥하고 서버에서 확인한 후, pull request 날리고 쉬었다. 깔끔했던 하루 였다.

2023년 3월 6일
·
0개의 댓글
·

인텔리제이 properties 파일 한글 깨짐 현상 해결법

preferences>Editor>File Encodings 에서 Properties Files (*.properties)의 Default encoding for properties files 값을 UTF-8로 설정한 후 Transparent native-to-ascii conversion 체크박스도 체크 (☑) 표시

2023년 2월 28일
·
0개의 댓글
·

Spring Framework, Spring Boot에서 application.properties란?

src/main/resoureces 아래에 있다. application.properties은 스프링 부트 애플리케이션의 구성 파일입니다. 이 파일은 애플리케이션의 동작 방식을 제어하기 위한 다양한 프로퍼티를 정의합니다. application.properties 파일은 애플리케이션의 클래스패스 루트에서 위치하며, 프로퍼티 이름과 값은 key=value 형식으로 작성됩니다. 이 파일을 사용하여 데이터베이스 연결, 로깅 설정, 보안 구성 등 애플리케이션의 다양한 구성 옵션을 지정할 수 있습니다. 예를 들어, application.properties 파일을 사용하여 데이터베이스 연결 구성을 지정할 수 있습니다. 위의 예제에서는 spring.datasource.url, spring.datasource.username, spring.datasource.password 프로퍼티를 사용하여 데이터베이스 연결 정보를 지정하고 있

2023년 2월 28일
·
0개의 댓글
·
post-thumbnail

파일 업로드 - Multipart

HTTP Multipart Multipart란 클라이언트에서 서버로 파일을 보낼 때 사용하는 Content Type이다. 클라이언트에서 보내는 요청을 찬찬히 뜯어보면 boundary=-----XXX 로 되어있는 것을 볼 수 있는데, 이는 각 Form 데이터의 경계를 나타내며, 이 경계를 기준으로 각각의 데이터를 표기하여 여러 타입의 데이터를 섞이지 않고 전달하는 것을 목적으로 만들어진 데이터 전송법이다. username과 age처럼 일반적인 데이터와 달리, 파일의 경우 Content-Type과 바이너리 데이터를 전송되는 것을 확인할 수 있다. HTTP 요청은 모두 문자열로 이루어지는데, 서버는 해당 요청을 받아 HTTP 스펙에 맞춰 이를 변환하는 작업을 진행해야한다. 만약 백엔드 프로그래

2023년 2월 22일
·
0개의 댓글
·
post-thumbnail

스프링의 예외 처리 - 뷰 템플릿

예외 처리 흐름 > 요청 → WAS(톰캣) → 필터 → 서블릿 → 인터셉터 → 컨트롤러(예외 발생) 컨트롤러 → 인터셉터 → 서블릿 → 필터 → WAS (예외 전달) WAS /error 재요청 → 필터 → 서블릿 → 인터셉터 → BasicErrorController → 인터셉터 → 뷰 리졸버 호출 뷰 리졸버 → 인터셉터 → 서블릿 → 필터 → WAS → 응답 > 컨트롤러에서 예외가 발생하여 필터나 인터셉터에서 처리하지 못하여 WAS(톰캣)까지 전달되면 위의 흐름이 발생한다. WAS까지 예외가 전달되면 WAS에서는 Spring에게 GET /error 를 재요청하게 된다. 때문에 클라이언트의 요청과 동일하게 필터와 인터셉터를 거치게되며 최종적으로 해당 요청을 처리하는 컨트롤러에게 전달되게 된다.

2023년 2월 22일
·
0개의 댓글
·

쿠키, 세션 - Session

Session 서버의 Session Storage를 만들어 Key-Value 형태로 저장되는 자료구조를 뜻한다. 쿠키는 브라우저에 저장되므로 Value가 String Type으로 정해져 있는데 반해, 세션은 Object Type을 이용해 자바의 모든 객체를 담을 수 있도록 구현된다. 이 세션 Value에 무엇을 넣냐에 따라 역할이 달라지는데, 쿠키를 넣어 클라이언트 간의 구분을 위해 사용할 수 도 있고, 별도의 데이터를 넣어 Cache Memory처럼 활용할 수도 있다. 여러 사용자가 동시 접근할 수 있기 때문에 Thread-Safe한 자료구조를 사용해야 한다. 톰캣의 세션의 경우에도 ConcurrentMap을 사용하고 있다. Session-Cookie 서버의 세션과 클라이언트의 쿠키를 혼합하여 사용하면 다음의 장점이 있다. 클라이언트가 아닌 서버 세션에 쿠키를 저장하고 관리하므로 클라이언트에게는 세션 Key만 쿠키에 담아서 보내면 된다. 더이상 쿠

2023년 2월 21일
·
0개의 댓글
·

TIL - 23.02.14

gitignore 적용 방법 application.properties 안에 들어있는 고객의 개인정보들과 같이 Github에는 올리고싶지는 않고 로컬 환경에서 팀원들끼리만 내용 공유를 하기위해 .gitignore 에 대해 여러 블로그들을 찾아보았다. 처음 여러 블로그들을 참고해보니 .gitignore 파일 안에 application.properties의 경로를 작성해주기만 하면 안에 있는 정보들이 Github에 올라가지 않는다고 설명되어있었고 그대로 따라해보았지만 application.properties는 그대로 활성화되어있는 상태에서 Github에 추적된 상태로 정보가 공유되었다.(사용하지 않는 레퍼지토리에서 테스트해봄) 원인은 기존에 .gitignore에서 application.properties 관리를 하지 않는 상태에서 .gitignore에 추가하더라도 기존에 추적하고 있던 상태이기 때문에(?) 계속해서 Github에 정보가 올라가고있던 것이었고, 추적되

2023년 2월 14일
·
0개의 댓글
·
post-thumbnail

서버 초기 설정

DB설정 DB는 MySQL을 사용할 예정입니다. MySQL 8.0 Community 버전으로 설치하였습니다. MySQL 설치법은 다른 블로그들에서 자세히 소개하고 있기 때문에 생략하겠습니다. Workbench에서 Database > Connect to Database를 클릭하여 DB를 root계정으로 연결해줍니다. Users and Previleges탭에서 Add Account를 클릭합니다. ![](https://velog.velcdn.com/images/tank3a/post/ac1da3a8-5241-4d18-921

2023년 2월 3일
·
0개의 댓글
·

[JPA] JPA를 이용한 데이터베이스 연동 - 설정

데이터베이스 연동 JPA를 이용하여 데이터베이스를 사용하기 위해서는 스프링 부트 어플리케이션과 연동해야 한다. Spring Data JPA 의존성을 추가한 후에는 별도의 설정이 필요하다. 연동할 데이터 베이스의 정보를 application.properties에 작성해야 한다. 이 설정 없이는 스프링 부트 어플리케이션이 실행되지 않는다. 📄 application.yml spring.datasource : 데이터베이스를 연동하는 데 사용하는 값을 설정 |설정 내용|설명| |---|---| | driver-class-name | 연동하려는 데이터베이스의 드라이버를 정의 | | url | DB의 경로와 데이터베이스명을 입력한다. | | username, password | 데이터베이스를 설치할 때 설정한 계정 정보 기입 (패스워드는 암호화 진행) | jpa : 하이버네이트를 사용할 때 활성화할 수 있는 선택사

2022년 11월 7일
·
0개의 댓글
·
post-thumbnail

스프링 설정파일(application.yml, application.properties) 로드 시점

스프링 설정파일(application.yml, application.properties)은 컴파일이 아닌 런타임 시점에 로드된다. 직접 테스트 해본 결과 아래와 같다. 설정파일이 올바르지 않으면 실행할 수 없는 애플리케이션이다. > 참고로 설정파일은 app 외부의 config/ 디렉토리에 정의되어있다. 설정파일 삭제 bootJar 생성 -> 성공 bootJar 실행(java -jar ...) -> 실패 설정파일 복구 bootJar 실행(java -jar ...) -> 성공 따라서 실행 시점의 프로파일을 달리하고 싶으면 재빌드할 필요없이 아래와 같이 하면 된다. config/ 에 설정파일이 정의된 경우, 빌드 서버와 실행 서버가 다르다면 jar 파일 COPY 시에 설정파일도 함께 COPY 해야한다. **/config/application.yml 이 아닌, `app/src/main/

2022년 9월 21일
·
0개의 댓글
·