개발 공부/Java & Spring 31

[SpringBoot] application.yaml 환경별 Profile 설정하기

공부를 위해 로컬에서 개발 중인 프로젝트를 aws로 배포해 보기로 하였다.엄연히 '개발' 서버가 생기게 되었으니 로컬/개발 정보가 구별될 수 있도록 개발 환경 별 profile 설정이 필요하게 되었다.📝 application.yml 수정하기기존 application.yml 이전에는 프로파일 구별 없이 통합으로 관리를 했었다. 변경된 application.yml 환경별 프로파일과 공통으로 적용될 common profile로 나누고, 각 그룹으로 만들어준다.active에 그룹명을 입력하면 해당 그룹이 애플리케이션이 실행할 때 default profile로 설정된다.  spring 옵션은 중복이 되면 빨간 줄이 뜨면서 오류를 뱉기 때문에spring  option을 복수로 사용할 때는 --- 구분자를 주어 다..

[Spring] @transactional 속성을 알아보자.

※ 스프링 공식 문서를 바탕으로 글 작성하였습니다.https://docs.spring.io/spring-framework/docs/current/javadocapi/org/springframework/transaction/annotation/Transactional.html Transactional (Spring Framework 6.1.13 API)Describes a transaction attribute on an individual method or on a class. When this annotation is declared at the class level, it applies as a default to all methods of the declaring class and its subcl..

스프링에서 예외처리를 하는 방법 (ExceptionHandler, RestControllerAdvice)

💡주제 예외처리를 위해 주렁 주렁 달은 try catch. catch 문 안에서 예외를 처리하다가 발생한 예외를 처리하기 위해 try catch 안에 try catch를 추가하는 상황이 발생하기도 한다.가독성이 떨어져 결국 catch의 인자를 Exception으로 받아 모든 에러를 통으로 처리해버린다..스프링 MVC 환경에서 좀 더 에러를 깔끔하고 잘 처리하기 위한 방법을 알아본다.👾 ExceptionHandler컨트롤러 기반의 예외처리@Exceptionhandler의 인자값으로 exception 클래스를 넣어주면 해당 exception 발생했을때 이 @Exceptionhandler가 붙은 메소드가 동작한다.(리스트도 가능)@ResponseStatus 어노테이션을 통해 원하는 http 상태코드를 리턴..

DTO vs Map 장점과 단점은?

💡 주제 클라이언트에서 서버, 컨트롤러에서 서비스 등 계층 간 데이터를 전송 하기 위해 주로 DTO 또는 Map을 사용한다.각각의 개념과 장단점, 사용방법에 대해서 정리해본다.📦 DTO DTO는 Data Transfer Object의 약어로 계층 간 데이터 전송을 위해 설계된 객체다.DTO는 주로 데이터베이스와 애플리케이션의 비즈니스 로직, 또는 애플리케이션과 클라이언트 간의 데이터 교환을 간소화하는 데 사용된다.DTO는 일반적으로 데이터 필드만 포함하고, 비즈니스 로직은 포함하지 않는다.각 필드에 대한 getter와 setter 메서드를 제공하여 데이터의 접근을 쉽게 한다. (나는 중간에 데이터가 변경되지 않도록 setter를 추가하지 않는 편이다.)👍🏻 장점계층 간 데이터 전송 단순화DTO는 ..

27. File

File : 파일은 가장 많이 사용되는 입출력 대상이다. 자바에서는 File클래스를 통해서 파일과 디렉토리를 다룬다. 그래서 File 인스턴스는 파일 일 수도 있고 디렉토리일 수도 있다. 💡File의 생성자와 메소드 생성자 / 메서드 설 명 File(String fileName) 주어진 문자열(fileName)을 이름으로 갖는 파일을 위한 File인스턴스를 생성한다. 파일 뿐만 아니라 디렉토리도 같은 방법으로 다룬다. 여기서 fileName은 주로 경로(path)를 포함해서 지정해주지만, 파일 이름만 사용해도 되는데 이 경우 프로그램이 실행되는 위치가 경로(path)로 간주된다. File(String pathName, String fileName) File(File pathName, String file..

26. 표준 입출력과 RandomAccessFile

표준입출력 : 표준입출력은 콘솔을 통한 데이터 입력과 콘솔로의 데이터 출력을 의미한다. 자바에서는 표준입출력을 위해 3가지 입출력 스트림을 제공하는데, 이들은 자바 어플리케이션 실행과 동시에 자동생성되기때문에 개발자가 별도로 코드를 작성하지 않고도 사용이 가능하다. 스트림 명 설명 System.in 콘솔로부터 데이터를 입력받을때 사용한다. System.out 콘솔로 데이터를 출력할때 사용한다. System.err 콘솔로 데이터를 출력할때 사용한다. ✔️ in, out, err는 System클래스에 선언된 클래스 변수 이다. ✔️ in, out, err의 선언부분의 타입은 InputStream과 PrintStream이지만 실제로는 버퍼를 이용하는 BufferedInputStream과 BufferedOutp..

25. 문자기반의 보조스트림

1️⃣ BufferedReader와 BufferedWriter - 버퍼를 이용해서 입출력의 효율을 높일 수 있도록 해주는 보조스트림. - BufferedReader의 readLine() 메소드를 사용하면 데이터를 라인 단위로 읽을 수 있다. - BufferedWriter는 newLine()이라는 줄바꿈 해주는 메서드를 가지고 있다. 예시 ) readLine()을 이용해 파일을 라인단위로 읽은 다음 ";"을 포함하고 있는 라인을 출력해보자. import java.io.*; public class BufferedReaderEx1 { public static void main(String[] args) { try { FileReader fr = new FileReader("/Users/user/Document..

24. Collector 구현하기

Collectors : collect()가 스트림의 요소를 수집하는데에 대한 방법을 정의한다. : static으로 제공하는 것을 가져다 사용할 수도 있고, Collector인터페이스를 구현받아서 직접 작성할 수도 있다. 💡Collector인터페이스 public interface Collector { Supplier supplier(); BiConsumer accumulator(); BinaryOperator combiner(); Fuction finisher(); Set characteristics(); // 컬렉터의 특성이 담긴 Set을 반환 ... } ✔️ 직접 구현해야하는 것은 위의 5개의 메서드인데, Characteristics()를 제외하면 모두 반환타입이 함수형 인터페이스이다. -> 4개의 람..

23. 스트림 - collect()

💡 collect() & Collector & Collectors collect() 스트림의 최종연산, 매개변수로 매개변수로 Collectors를 필요로 한다. Collector 인터페이스. 컬렉터는 이 인터페이스를 구현해야한다. Collectors 클래스.Collector인터페이스를 구현한 것, 직접 구현할 수 도 있고 미리 작성된걸 사용할 수도 있다. // Collecter를 구현한 클래스의 객체를 매개변수로 Object collect(Collector collect) //Collecter인터페이스를 구현하지 않고 간단히 람다식으로 수집할 때 사용하면 편리함. Object collect(Supplier supplier, BiConsumer accumulator, BiConsumer combiner) ..

22. 스트림의 최종연산

스트림의 최종연산 : 스트림이 제공하는 연산은 중간 연산과 최종 연산으로 분류할 수 있다. ✔️ 중간연산 : 연산결과를 스트림으로 반환하기 때문에 중간 연산을 연속해서 연결 할 수 있다. ✔️ 최종연산 : 스트림의 요소를 소모하면서 연산을 수행하므로 단 한번만 연산이 가능하다. 연산의 결과는 스트림의 요소의 합과 같은 단일 값이거나, 스트림의 요소가 담긴 배열 또는 컬렉션일 수 있다. forEach() : 스트림의 요소를 소모하는 최종연산이다. 반환타입이 void이므로 스트림의 요소를 출력하는 용도로 많이 사용된다. 최종 연산 설명 void forEach(consumer

728x90
반응형