| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- ORM
- 핵심가이드
- 컴퓨터 공학
- 스프링부트
- 서버
- TestCode
- 연관관계
- JPA
- spring boot
- 컴퓨터 구조
- error
- JWT
- restTemplate
- array
- 백엔드스쿨
- SpringBoot
- spring
- queue
- 개발자
- 제로베이스
- 프로그래머스
- LinkedList
- Java
- SpringSecurity
- actuator
- 백엔드공부
- 백엔드
- 자료구조
- QueryDSL
- 백준
- Today
- Total
목록Java (37)
be_better
RestTemplate 사용하기 서버 프로젝트 생성 두 개의 서버를 가동시켜야 하기 때문에 톰캣의 포트를 변경해준다. application.yml server: port: 9090 MemberDto 클래스 @Getter @Setter @NoArgsConstructor @AllArgsConstructor @Builder public class MemberDto { private String name; private String email; private String organization; public String toString() { return "MemberDto{" + "name='" + this.getName() + "\'" + ", email='" + this.getEmail() + "\'" +..
최근에 개발되는 서비스들은 마이크로서비스 아키텍처(MSA)를 주로 채택하고 있다. MSA는 말 그대로 애플리케이션이 가지고 있는 기능(서비스)이 하나의 비즈니스 범위만 가지는 형태이다. 각 애플리케이션은 자신이 가진 기능을 API로 외부에 노출하고, 다른 서버가 그러한 API를 호출해서 사용할 수 있게 구성되므로 각 서버가 다른 서버의 클라이언트가 되는 경우도 많다. RestTemplate이란? RestTemplate은 스프링에서 HTTP 통신 기능을 손쉽게 사용하도록 설계된 템플릿이다. HTTP 서버와의 통신을 단순화한 이 템플릿을 이용하면 Restful 원칙을 따르는 서비스를 편리하게 만들 수 있다. RestTemplate은 기본적으로 동기 방식으로 처리되며, 비동기 방식으로 사용하고 싶을 경우 As..
액추에이터에 커스텀 기능 만들기 액추에이터는 다양한 정보를 가공해서 제공하는데 그 밖에 개발자의 요구사항에 맞춘 커스텀 기능 설정도 제공한다. 커스텀 기능을 개발하는 방식에는 크게 기존 기능에 내용을 추가하는 방식, 새로운 엔드포인트를 개발하는 방식 두가지가 있다. 정보 제공 인터페이스의 구현체 생성 액추에이터를 커스터마이징하는 가장 간단한 방법은 application.yml 파일 내에 내용을 추가하는 것이다. 이 방법은 많은 내용을 담을 때는 관리 측면에서 좋지 않기 때문에 커스텀 기능을 설정할 때는 별도의 구현체 클래스를 작성해서 내용을 추가하는 방법이 많이 활용된다. 액추에이터에서는 InfoContributor 인터페이스를 제공하고 있는데, 이 인터페이스를 구현하는 클래스를 생성하면 된다. Info..
액추에이터 기능 살펴보기 애플리케이션 기본 정보(/info) 액추에이터의 /info 엔드포인트를 활용하면 가동 중인 애플리케이션의 정보를 볼 수 있다. info 정보를 추가하고자 하려면 아래와 같이 EnvironmentInfoContributor을 활성화 시킨 후 추가하고자 하는 info 정보를 작성하면 된다. application.yml 파일 내에 애플리케이션 정보 속성 작성 management: info: env: enabled: true info: organization.name: wikibooks contact: email: anyemail@gmail.com phoneNumber: 010-0000-0000 애플리케이션을 실행 한 후 브라우저에서 http://localhost:8080/actuato..
애플리케이션을 개발하는 단계를 지나 운영 단계에 접어들면 애플리케이션이 정상적으로 동작하는지 모니터링하는 환경을 구축하는 것이 매우 중요해진다. 스프링 부트 액추에이터는 HTTP 엔드포인트나 JMX를 활용해 애플리케이션을 모니터링하고 관리할 수 있는 기능을 제공한다. 액추에이터 종속성 추가 새로운 프로젝트를 생성하고 의존성을 추가한다. spring-boot-starter-actuator 의존성 추가 // gradle dependencies { implementation 'org.springframework.boot:spring-boot-starter-actuator' } // maven ..생략.. org.springframework.book spring-boot-starter-actuator ..생략...
예외 처리 애플리케이션을 개발할 때는 불가피하게 많은 오류가 발생하게 된다. 자바에서는 이러한 오류를 try/catch, throw 구문을 활용해 처리한다. 스프링 부트에서는 더욱 편리하게 예외 처리를 할 수 있는 기능을 제공한다. 예외와 에러 프로그래밍에서 예외(exception)란 입력 값의 처리가 불가능하거나 참조된 값이 잘못된 경우 등 애플리케이션이 정상적으로 동작하지 못하는 상황을 의미한다. 예외는 개발자가 직접 처리할 수 있는 것이므로 미리 코드 설계를 통해 처리할 수 있다. 다음으로 에러(error)는 소프트웨어공학 관점으로는 예외와 엄연히 다르게 사용되는 용어이다. 에러는 주로 자바의 가상머신에서 발생시키는 것으로서 예외와 달리 애플리케이션 코드에서 처리할 수 있는 것이 거의 없다. 대표적..
Background 애플리케이션의 비즈니스 로직이 올바르게 동작하려면 데이터를 사전 검증하는 작업이 필요한데 이것을 유효성 검사 또는 데이터 검증이라 부른다. 일반적인 애플리케이션 유효성 검사의 문제점 일반적으로 사용되는 데이터 검증 로직에는 계층별로 진행하는 유효성 검사는 검증 로직이 각 클래스별로 분산되어 있어 관리하기 어렵다. 검증 로직에 의외로 중복이 많아 여러 곳에 유사한 기능의 코드가 존재할 수 있다. 검증해야할 값이 많다면 검증하는 코드가 길어진다. 등의 문제점들이 있는데 이 같은 문제를 해결하기 위해 Bean Validation 이라는 데이터 유효성 검사 프레임워크를 제공한다. Bean Validation을 사용한다는 것은 유효성 검사를 위한 로직을 DTO 같은 도메인 모델과 묶어서 각 계..
에러 내용 Springboot와 Mysql 연동을 위해 gradle에 mysql dependency를 추가하고 dependencies { runtimeOnly 'mysql:mysql-connector-java' } application.yml 에 datasource를 작성했는데 빨간줄로 되어있는 경우가 있다. 원인은 build.gradle에서 관련 드라이버를 가져오지 못했기 때문이다. 해결 Build도 오류없이 잘 되었어도 이런 경우가 있는데 이럴 땐 mysql 버전을 확인해서 명시해주면 된다..! runtimeOnly 'mysql:mysql-connector-java:8.0.25' 빨간줄이 없어진것을 확인할 수 있다.