본문 바로가기

쿤즈 Dev206

[Spring Boot] 앱 배포시 profile 설정 방법 스프링 부트를 통해서 웹 프로그래밍을 완료하고 Build를 하면 로컬에서는 쉽게 테스트가 가능하다. 그리고 배포할 때에는 이 프로젝트를 jar 파일로 만들어서 배포하면 Tomcat까지 포함되어 만들어지기 때문에 배포 과정도 굉장히 편리하다. 이것이 스프링 부트를 사용하여 웹 서비스를 만들면 쉬운 부분 중 하나인 것 같다. 하지만 로컬에서 테스트할 때와 실제 운영에 배포하여 서비스할 때에는 환경 구성이 다르다. 그래서 profile 설정을 다르게 만들어 주어야 한다. 어떻게 하는 것인지 알아보자. application.yml 설정 대부분의 중요한 설정들은 application.properties 혹은 application.yml을 이용해서 만든다. 이 파일 내부에는 디비에 접근하는 url이나 jwt에 사용.. 2023. 1. 30.
[Spring Boot] 엔티티에서 Setter 사용에 대한 생각 이번 포스팅에서는 고민하고 있는 생각들을 적어보려 한다. 그래서 이번에 생각해본 주제는 데이터베이스와 바로 직결되어 있는 엔티티, 그 중에서도 엔티티의 데이터가 변경되는 Setter(세터) 메서드에 대한 고민들이다. 생각하고 고민하던 것들을 나열해 본다. 엔티티는 소중하다 엔티티는 굉장히 소중한 객체이며 클래스라 생각한다. 데이터베이스 테이블과 동일한 데이터를 담는 곳이기 때문이다. 따라서 이 데이터가 잘못되었거나 없다거나 부문별하게 변경될 수 있다 생각하면 아찔하다. 그래서 엔티티를 다룰때에는 반드시 소중하게 다뤄야 할 필요가 있다. 새로운 엔티티가 생성되는 것인지, 이미 만들어진 엔티티를 수정하는 것인지 판단해야한다. 혼자 작업을 할 때에는 이런것들은 개발자 한 사람이 다 생각하기때문에 전혀 문제가 .. 2023. 1. 8.
[Spring Boot] Java Optional 사용 방법 Java를 이용하여 웹 프로그래밍을 할 때, 많은 부분은 CRUD를 사용하게 될 것입니다. 그리고 Read 부분이 가장 많이 이용되는 부분이 아닌가 싶습니다. 특히 Repository를 접근할때 JPA 기능을 사용하여 인터페이스를 상속받고 사용하는 메서드중에서 Optional 타입들이 있습니다. 이번 포스팅에서는 Optional 타입을 어떻게 사용하는지 알아보도록 할게요. Optional 은 무엇인가? Spring boot에서 엔티티를 조회하기 위해서 사용하는 메서드중 findById()라는 메서드가 있습니다. 이 메서드는 Id를 조회하여 엔티티 하나를 가져오는 메서드입니다. 이때 반환 타입을 보면 Optional로 되어 있습니다. 그리고 그 내부에 저희가 원하는 T 반환타입이 제너릭으로 만들어져 있어요.. 2022. 12. 28.
[Spring Boot] RabbitMQ 란 무엇인가(1) 스프링부트를 사용하면서 데이터를 다른 서버로 전달해야할 경우가 최근에는 많이 발생합니다. 많는 서버들이 덩치가 커지면서 MSA로 넘어가는 일이 많이지기 때문이죠. 그래서 결제와 같은 데이터나 통계를 위해 데이터가 다른서버로 이동해야할때 많이 사용하는 기술 중 하나가 바로 MQ(Message Queue)입니다. 이번 포스팅에서는 여러가지 메세지 큐중에서 RabbitMQ 에 대해서 알아보도록 할게요. RabbitMQ 란? 래빗엠큐는 메세지 브로커를 의미합니다. 즉, 어떠한 메세지, 정보를 전달할때 중간에서 그 메세지를 받아서 다른 서버로 전송하는 기능을 합니다. 그래서 브로커라는 단어를 사용하는것 같아요. 래빗엠큐는 AMQP 표준을 따릅니다. Advanced Message Queuing Protocol의 약.. 2022. 12. 26.
[Spring Boot] 앱 실행시 banner 만드는 방법 스프링부트 프로젝트를 개발하다 보면 앱을 실행할 때 톰캣이 실행되면서 상단에 배너가 뜨는 것을 보실 수 있습니다. 아무런 설정을 하지 않았다면 Spring이라는 글자와 함께 버전 정보가 나타나게 됩니다. 이번 포스팅에서는 스프링부트 애플리케이션 실행 시 등장하는 배너를 만드는 방법에 대해서 알아보겠습니다. 배너 생성 사이트 배너를 생성하기 위해서 고민하실 필요는 없습니다. 원하는 글자만 입력하는 배너를 만들어 주는 사이트가 있습니다. 배너 생성사이트: https://devops.datenkollektiv.de/banner.txt/index.html 사이트에 들어가시면 아래와 같은 화면이 나타납니다. 여기서 원하는 글자를 입력해서 배너를 만들 수 있습니다. 저는 예를들어서 Customer라는 배너 글자를 .. 2022. 6. 8.
[Spring Boot] Service 테스트 코드 작성하기 (feat. Kotlin) 지난 포스팅에서는 Entity를 생성하고 Repository를 만들어서 테스트 코드를 작성해 보았습니다. 2022.06.04 - [쿤즈 Dev/Spring Boot] - [Spring Boot] Repository 테스트 코드 작성하기(feat. Kotlin) [Spring Boot] Repository 테스트 코드 작성하기(feat. Kotlin) 스프링 부트 프로젝트를 진행하면서 이제는 선택이 아닌 필수가 되는 것 중 하나가 바로 테스트 코드의 작성입니다. 테스트 코드는 무작정 작성해도 되지만 잘 작성해 놓으면 여러 가지 오류에 koonsland.tistory.com Repository를 만들 때에는 간단하게 JpaRepository를 상속받았고 API하나를 추가하여 테스트를 진행해 보았습니다. 이번.. 2022. 6. 7.
[Spring Boot] Repository 테스트 코드 작성하기(feat. Kotlin) 스프링 부트 프로젝트를 진행하면서 이제는 선택이 아닌 필수가 되는 것 중 하나가 바로 테스트 코드의 작성입니다. 테스트 코드는 무작정 작성해도 되지만 잘 작성해 놓으면 여러 가지 오류에 대해서 대처가 가능합니다. 이번 포스팅에서는 Repository를 만들고 테스트 하는 방법에 대해서 알아볼게요. JPA를 이용해 Repository 만들기 레포 테스트를 위해서는 우선 클래스를 만들어야 합니다. JPA를 이용하면 이러한 Repository 클래스들을 손쉽게 만들고 CRUD가 가능합니다. 먼저 회원 Entity를 만들어 보겠습니다. @Entity class Member( var name: String, var age: Int, ) { @Id @GeneratedValue @Column(name = "membe.. 2022. 6. 4.
[Kotlin] 함수의 사용(2): 반환값이 없는 함수, 매개변수 활용 지난 포스팅에서는 코틀린에서 함수를 사용하는 방법에 대해서 알아보았습니다. 2022.05.18 - [쿤즈 Dev/Kotlin] - [Kotlin] 함수의 사용(1): 간단하게 함수 만들고 사용하기 [Kotlin] 함수의 사용(1): 간단하게 함수 만들고 사용하기 코틀린을 사용하기 위해서 지난 포스팅에서는 변수를 선언하는 방법과 연산자를 사용하는 방법에 대해서 알아보았습니다. 이번 포스팅에서는 함수를 만들고 사용하는 방법에 대해서 알아볼게 koonsland.tistory.com 간단하게 함수를 만들고 사용하는 방법을 알아보았으니 함수에 대해서 조금 더 자세하게 알아볼게요. 이번 포스팅에서는 반환값이 없은 함수와 매개변수에 대해서 알아보겠습니다. 반환값이 없는 함수 반환값이 없는 함수는 Unit이라는 키워드.. 2022. 5. 19.
[Kotlin] 함수의 사용(1): 간단하게 함수 만들고 사용하기 코틀린을 사용하기 위해서 지난 포스팅에서는 변수를 선언하는 방법과 연산자를 사용하는 방법에 대해서 알아보았습니다. 이번 포스팅에서는 함수를 만들고 사용하는 방법에 대해서 알아볼게요. 함수의 모양 코틀린에서 함수를 정의하기 위해서는 아래와 같은 규칙이 필요합니다. fun 함수이름 ( [변수: 자료형, ...] ): 반환 자료형 { ... [return 반환값] } 가장 먼저 함수를 정의하기 위해서는 fun이라는 키워드가 필요합니다. 이 키워드를 입력하고 뒤에 함수 이름을 입력하면 됩니다. 함수 이름은 원하는 이름 아무거나 정할 수 있습니다. a 라고 입력해도 되고 abcd라고 입력해도 됩니다. 다만 코틀린에서 키워드로 사용중인 이름은 사용할 수 없으며 띄어쓰기도 사용할 수 없습니다. 다음은 괄호가 오는데 .. 2022. 5. 18.