Programming 318

springboot 개발 환경에 따른 properties 사용 방법 (local, dev, prod)

스프링부트에서 개발 환경에 따라 properties를 사용하는 방법입니다. 우선 properties란 무엇인지 알아보겠습니다. .properties는 설정 파일입니다. 자바 응용프로그램 내에서 사용되는 설정과 관련된 변수들을 파일에다가 쓰고, 읽어오는 방식에 사용되는 파일입니다. 이 설정 파일은 외부에서 파일을 넣을 수도 있고, 프로젝트 내부적으로도 넣어서 사용할 수 있습니다. 위에서 말한 설정과 관련된 변수들은 문자열로 저장됩니다. 각 줄은 일반적으로 하나의 프로퍼티를 저장하며, 한 문자열은 key, value 쌍으로 저장됩니다. 줄의 맨 앞에 # 또는 ! 를 사용하여 주석처리를 할 수 있습니다. 위에 보이는 파일은 가장 기본이 되는 application.properties 파일로 스프링부트가 어플리케..

No auto configuration classes found in META-INF/spring.factories 오류 해결

IntelliJ Spring Boot Project 배포를 위한 jar 파일 생성 (Maven) 마무리 중인 Spring Boot 프로젝트 배포를 위해 작업된 프로젝트를 jar 파일로 만드는 법을 기록합니다. (큰 틀에서의 이론을 먼저 살펴보고 생성 방법에 대해서 알아보겠습니다.) 먼저 Java 기반의 Ap wildeveloperetrain.tistory.com * 해당 포스팅의 방법으로 생성한 .jar 을 실행하는 과정에서 발생한 오류와 그 해결 방법을 찾아 다시 포스팅합니다. 프로젝트를 배포하기 위해 위 방법으로 .jar 파일을 생성하고 실행하였으나 에러가 발생하였습니다. ERROR org.springframework.boot.SpringApplication - Application run faile..

MySQL 비밀번호 변경 방법, How to change MySQL root password

개발한 웹사이트를 배포하기 위해서 서버 설정 과정 중 MySQL 비밀번호 변경 방법을 포스팅합니다. (사용된 운영체제와 MySQL 버전은 다음과 같습니다.) CentOS 7.2 with MySQL 5.7 (64-bit) * 비밀번호 변경 방법 및 명령문은 버전에 따라 다를 수 있습니다. mysql -u root -p 명령어로 실행합니다. MySQL을 가장 처음으로 실행하게 되면 비밀번호가 설정되어 있지 않기 때문에 Enter Password: 에서 엔터만 입력하는 것으로 접속을 할 수 있습니다. use mysql; 비밀번호 변경을 위해서는 mysql 데이터베이스를 사용해야 합니다. (Database changed 를 통해 요청이 적용된 것을 확인할 수 있습니다.) 다음으로 select 문을 통해 설정된 ..

Programming/MySQL 2021.07.24

Mac 맥북 자주 사용되는 단축키 (이모티콘, 화면 캡쳐, 스크린샷, 한영전환)

맥북을 사용한 지 반년이 지나가는데 아직도 이모티콘 단축키를 헷갈려하는 것이 웃겨 맥북에서 자주 사용되는 유용한 단축키 몇 가지를 간단하게 정리합니다. 1. 맥북 이모티콘 단축키 맥북에서 이모티콘을 사용하기 위한 단축키는 Command + Control + Space입니다. 이제는 까먹지 않기를 바라며.. 2. 맥북 화면 캡쳐, 스크린샷 단축키 맥북에서 화면 캡쳐, 화면 녹화, 스크린샷을 찍기 위한 단축키는 Command + Shift + 3 or 4 or 5 입니다. 3, 4, 5 세 가지 기능이 있는데요. Command + Shift + 3 => 전체 화면을 캡쳐하는 단축키 Command + Shift + 4 => 직접 캡쳐할 영역을 지정할 수 있습니다. Command + Shift + 5 => 실행..

Programming/MacOS 2021.07.19

MacOS 숨겨진 폴더, 숨겨진 파일 확인하는 단축키

맥북이나 아이맥 같은 mac 운영체제는 기본적으로 특정 시스템 및 백업 파일을 Finder에 표시하지 않습니다. 하지만 개발을 하다 보니 eclipse-workspage 내부의 .metadata 폴더와 같이 가끔 숨겨진 폴더나 파일을 봐야 하는 경우가 있었습니다. 이때 숨겨진 폴더 또는 숨김 파일을 확인하는 단축키는 ⌘ + ⇧ + . Command + Shift + . 입니다. 해당 단축키를 사용하여 토글 방식으로 숨겨진 폴더 및 숨겨진 파일을 확인할 수 있으니 한번 숙지해두면 좋을 것 같습니다.

Programming/MacOS 2021.07.18

Swagger 사용하여 RESTful API 문서 자동화하기 (SpringBoot)

처음에는 회사에 들어갔을 때는 Swagger를 잘 만들어야 한다는 이야기가 크게 와닿지 않았는데, 프로젝트를 진행하며 협업에 있어서 내가 개발한 것을 다른 사람들도 쉽게 알아보고, 사용할 수 있도록 문서화하는 것이 중요하구나를 많이 느끼고 있습니다. 그래서 Web API 문서화 도구 중 많이 쓰이는, 그리고 사용하고 있는 Swagger의 사용법에 대해 정리해보려고 합니다. (Swagger 외에는 많이 사용되는 문서화 도구는 SpringRestDocs가 있습니다.) Swagger란 무엇일까? 백엔드 개발에 있어서 Web API를 문서화하기 위한 도구이며 쉽게는 제품의 설명서라고도 생각할 수 있습니다. 간단한 설정으로 프로젝트의 API 목록을 웹에서 확인 및 테스트 가능하게 하는 라이브러리이며, 특히 RES..

Java 문자열을 다루는 클래스 String, StringBuilder, StringBuffer 차이점은 무엇일까?

자바에서 문자열을 다루는 클래스는 String, StringBuilder, StringBuffer 세가지가 있습니다. 이 세가지 클래스의 차이점과 어떤 경우에 어떤 클래스를 사용하는 것이 적합한지 알아봅니다. String 먼저 String 입니다. String은 불변 (immutable) 의 속성을 가지고 있습니다. 문자열이 변할 때 마다 새로운 객체 (인스턴스) 를 생성합니다. StringBuilder, StringBuffer 반면 StringBuilder, StringBuffer는 가변 (mutable) 의 속성을 가지고 있습니다. 둘 다 문자열의 변경이 가능하며, 내부에 char 배열 공간이 존재하기 때문에 문자열의 크기가 늘어나면 자동으로 증가시켜주고, 배열이 꽉 차면 자동으로 늘려줍니다. Str..

Programming/Java 2021.07.16

IntelliJ Spring Boot Project 배포를 위한 jar 파일 생성 (Maven)

2021.07.27 추가 * 해당 방법으로 실행되는 경우도 있겠지만 본인의 경우 해당 방법으로 프로젝트 실행에 실패했고, 해결 방안을 맨 하단 새로 포스팅하여 올렸습니다. 참고 부탁드리겠습니다. 마무리 중인 Spring Boot 프로젝트 배포를 위해 작업된 프로젝트를 jar 파일로 만드는 법을 기록합니다. (큰 틀에서의 이론을 먼저 살펴보고 생성 방법에 대해서 알아보겠습니다.) 먼저 Java 기반의 Application 배포 형태는 JAR, WAR 두 가지 방법이 있습니다. 두 가지 방법 모두 Java jar tool을 이용하여 압축한 같은 형태의 압축 파일이지만 사용 목적이 다릅니다. 그리고 둘의 눈에 띄는 가장 큰 차이점은 내장 WAS를 사용하는 것과 외장 WAS를 사용하는 것이 아닐까 생각합니다. ..