목록IT/Java & Kotlin & Spring boot (15)
And Brain said,
목차 1. 클래스와 객체 2. 인터페이스와 추상 클래스 3. 메소드와 매개변수 4. 제네릭 (Generics) 5. 배열과 컬렉션 6. 객체지향 프로그래밍 7. 예외 처리 8. Java I/O 9. Java의 동시성(Concurrency) 10. Java의 네트워킹 11. Java의 리플렉션(Reflection) 12. Java의 디자인 패턴 13. 함수형 프로그래밍 오늘은 객체지향 언어의 대표주자 Java의 이론에 대해 간단하게 알아보자. 1. 클래스와 객체 Java는 순수 객체지향 언어는 아니지만 처음부터 객체지향을 위해 개발된 언어로, 당연히 객체라는 개념이 아주 중요하다. 객체(Object)는 객체 지향 프로그래밍(OOP)에서 프로그램의 기본 구성 요소로, 소프트웨어 세계에서 현실 세계의 개체를 ..
오늘은 간단히 JPA ORM 부터 나아가 QueryDSL 까지 배워보도록 하자. 이전에 이미 한 번 포스팅한 적이 있었지만, 미흡한 부분이 많아 다시 한 번 배워보자. 먼저, JPA ORM부터 살펴보자. JPA ORM은 Java Persistence API를 기반으로 하는 객체-관계 매핑(Object-Relational Mapping) 기술로, Java 객체와 관계형 데이터베이스 사이의 매핑을 자동화해 주는 프레임워크다. 이를 통해 개발자들은 SQL 쿼리를 직접 작성하는 것이 아니라, Java 객체를 사용하여 데이터베이스 작업을 수행할 수 있다. 이렇게 SQL 쿼리를 작성하지 않고도 데이터베이스 작업을 수행할 수 있어 개발자들의 생산성이 향상되고, 코드 가독성 및 유지보수성 증가 및 데이터베이스 독립성을..
오늘은 Spring Cloud Config Server에 대해 알아보자. Config Server는 외부 환경 설정을 중앙 집중적으로 관리할 수 있도록 도와주는 역할을 한다. 예를 들어, 여러 대의 서버가 존재하는데 각각 서버별로 프로파일과 환경마다 설정이 다르다면 이를 중앙에서 관리해주지 않으면 설정 변경 시 모든 서버의 설정을 일일이 변경해주어야 하는 문제가 발생한다. 이런 이유로 환경 설정을 중앙에서 관리하고 필요한 서버에서 설정 정보를 가져와 사용하는 방식을 취하는것이 MSA의 Config Server이다. https://theworldaswillandidea.tistory.com/112 Kotlin, The Evolution of Java (+ MSA with Spring boot) 오늘은 현재..
오늘은 Spring Cloud의 Bus에 대해 알아보도록 하자. MSA는 다들 잘 알다시피 여러 개의 마이크로서비스가 각각 독립적으로 동작하고 서로 통신하여 기능을 제공하는데 이때, 마이크로서비스들 간에 변경 사항이 발생할 경우, 이를 다른 서비스들에게 전파해야 한다. 이를 위해 Spring Boot 애플리케이션에서 사용되는 버스 구현체가 Spring Cloud Bus다. Spring Cloud Bus는 AMQP(Advanced Message Queuing Protocol) 기반의 브로커 기반 메시징 시스템으로, RabbitMQ나 Apache Kafka를 이용하여 구현한다. 메시지 브로커에 대한 더 자세한 내용은 아래 포스팅을 참조 https://theworldaswillandidea.tistory.co..
오늘은 Spring Boot의 Profile 설정을 통해, 쉽게 환경 별로 설정을 구분할 수 있도록 해보자. 바로 시작하자. 자, 이렇게 설정하면 된다. 매우 쉬우니 여기서 끝. 부연설명을 해보자면, 일단 이 프로젝트는 Config Server가 따로 존재하여, Config가 프로젝트 외부에 존재한다. 하여 yml 파일에 --- 식으로 다른 환경에 맞춰 Config Server 경로를 잡아주기 위해 Config Server의 IP를 변경해주었다. 기본적으로 Spring boot를 실행하면 프로필은 default로 실행된다. 하지만, 이런 식으로 설정해준다면 각각의 환경에 따라 변화무쌍하게 프로젝트를 운용할 수 있게된다. dev, prod 같은 것들은 예시이므로, 본인이 원하는 프로필네임으로 설정해주어도 ..