프로그래밍(38)
-
[JAVA] 문자열에 적용할 수 있는 메소드들
보호되어 있는 글입니다.
2024.12.15 -
[JAVA] 객체 타입을 확인하는 instanceof
instanceof- 객체 타입을 확인하는 연산자 (= 참조변수가 참조하고 있는 인스턴스의 실제 타입을 알아보기 위한 연산자)- 형변환 가능 여부를 확인하며, boolean 타입으로 결과를 반환- 객체가 어떤 클래스이자, 어떤 클래스를 상속받았는지 확인할 때 사용하는 연산자 다음과 같은 형식으로 사용한다.객체 instanceof 타입 사용 예제class SuperClass { // 부모클래스 코드}class SubClass extends SuperClass { // 자식클래스 코드} public static void main(String[] args) { SuperClass tmpObj = new SuperClass(); SubClass sub = new SubClass(); Syste..
2024.12.15 -
[Spring] 예외 처리 ExceptionHandler
스프링에서 @ExceptionHandler는 애플리케이션에서 발생하는 특정 예외를 처리하기 위해 사용되는 애노테이션이다. @ExceptionHandler는 주로 REST API를 개발할 때 유용하며, 사용자에게 친화적인 에러 메시지를 제공하거나 특정 HTTP 상태 코드를 반환하는 데 사용된다.-> Response Body를 직접 설정 가능 기본 사용법@ExceptionHandler는 컨트롤러 클래스나, 컨트롤러 계층 전반에서 예외를 처리하는 데 사용됩니다.@RestController@RequestMapping("/api")public class SampleController { @GetMapping("/test") public String testEndpoint() { // 예..
2024.11.29 -
[JAVA] Dto 클래스에 대하여 record로 사용하는 이유
record는 간단한 데이터 타입의 구조를 저장할 때 쓰는 것으로, DTO 클래스에 적합한 형식이다. 예시코드1public record User( String id, String password ) { public static User of( String id, String password ) { return new User(id, password); }} 이를 사용하면 Getter 생성자도 필요없이 그냥 바로 필드에 접근하는 것이 가능하다. 간단하고 불변하는 객체에 대하여 적용하기 좋다. (확장성은 부족)또한 불변 데이터를 모델링하는 데에 집중하도록 함그래서 DTO 클래스에 대하여 record를 적용한다.(Entit..
2024.11.27 -
[Spring] ResponseEntity에서 객체를 반환할 때 new 연산자 사용
ResponseEntity 반환ResponseEntity 객체 반환 1. 정적 팩토리의 사용 예시 코드return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) .body(errorResponse); Response.status(), ResponseEntity.ok() 등 메서드를 사용하면 코드가 간결해지면서매개변수의 순서가 어떻게 되든 상관 없이 알아서 메서드를 사용하여 설정하면 됨직접 new를 사용하여 생성자를 호출할 필요 없기에 깔끔함객체 생성 방식이 코드에 노출되지 않아 더욱 유연하고 유지보수하기 쉬운 구조를 가질 수 있음 2. 직접 new 생성자를 사용 예시코드return new ResponseEntity(errorResponse, ..
2024.11.26 -
[Spring] @EqualsAndHashCode
@Data 어노테이션에서도 다뤘었던 내용이다.(참고: https://kite-u.tistory.com/107 ) 간단히 설명하자면, Equals와 HashCode 메서드 기능을 둘 다 제공 가능하는 어노테이션이다. 어노테이션을 사용하지 않을 때import java.util.Objects;public class Person { private String name; private int age; // 자동 생성된 equals() @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false..
2024.11.25