본문 바로가기

Java39

Javadoc JavadocJavadoc의 문법과 주요 태그 사용법을 익힌다.실제 클래스/메서드/필드에 주석을 작성할 수 있다.javadoc 명령어를 사용해 HTML API 문서를 생성할 수 있다.팀원과 협업 시 읽기 쉬운 코드 문서를 작성하는 습관을 기른다.습관공개 클래스/메서드에는 반드시 Javadoc 작성@param 순서는 실제 매개변수 순서와 일치팀 표준 정하기 (작성 필수 항목, 표현 방식 등)IntelliJ에서 Javadoc 자동 완성 사용하기: /** + Enter1단계: Javadoc 기본 이해Javadoc이란?Javadoc은 Java 코드에 대한 설명을 문서화하기 위한 표준 주석 형식입니다.이를 통해 자동으로 HTML 형태의 API 문서를 생성할 수 있으며, 대부분의 IDE(IntelliJ, Eclip.. 2025. 6. 21.
Getter/Setter 사용 기준 1. Getter 허용 기준 (상대적으로 자유로움)● 허용: 조회 목적의 필드조회용으로 필드 값을 외부에 제공할 필요가 있을 때 허용됩니다.public String getEmail() { return email;}● 제한 또는 금지:민감 정보 (password, token, salt, secretKey, 등)내부적으로만 사용하는 정보 (internalFlag, deleted, 등)// ❌ 이렇게 민감한 값은 외부 노출 Xpublic String getPassword() { return password;}권장:필요한 필드만 Getter 생성 (@Getter 대신 개별 작성)Lombok @Getter는 DTO나 읽기 전용 뷰 모델에만 사용2. Setter 허용 기준 (매우 신중)● 기본 원칙: 엔.. 2025. 5. 31.
ResponseEntity ResponseEntity란?ResponseEntity는 Spring Framework에서 HTTP 응답 전체를 커스터마이징할 수 있게 해주는 클래스입니다.@RestController나 @Controller에서 일반적으로 메서드 반환 타입으로 사용되며, HTTP 상태 코드, 헤더, 바디를 원하는 대로 제어해서 응답을 반환할 수 있습니다.왜 쓰는가? (주요 목적)HTTP 상태 코드 커스터마이징기본적으로 @RestController에서는 객체 반환 시 항상 200 OK로 나가지만, 상황에 맞게 404, 201, 400 등 다양한 상태 코드로 직접 제어하고 싶을 때 사용해요.헤더 직접 지정응답에 Location, Set-Cookie, Cache-Control 같은 커스텀 헤더를 추가하거나 수정할 수 있어요.응.. 2025. 5. 15.
JAVA 1. 기초 문법과 흐름 제어Java 언어 개요JDK, JRE, JVM, 바이트코드 이해변수와 자료형기본형 vs 참조형, Wrapper 클래스연산자산술, 논리, 비교, 비트, instanceof 등조건문 & 반복문if, switch, for, while, do-while배열과 문자열배열 선언과 조작, String, StringBuilder, StringBuffer메서드매개변수, 반환값, 오버로딩1. Java 언어 개요Java는 Sun Microsystems(현재는 Oracle)에 의해 1995년에 개발된 객체 지향 프로그래밍 언어이다."Write Once, Run Anywhere"라는 철학을 바탕으로, 한 번 작성한 코드를 다양한 운영체제에서 실행할 수 있도록 설계되었다.주요 특징플랫폼 독립성 (JVM 덕.. 2025. 4. 7.
Java sealed class sealed class란?sealed class는 자식 클래스가 누군지만 명시적으로 "봉인(seal)"할 수 있는 클래스.즉, "이 클래스는 상속할 수 있는데 지정된 몇몇 클래스만 상속 가능하게 한다"는 뜻!기본 문법public sealed class Shape permits Circle, Rectangle { // ...}public final class Circle extends Shape { // ...}public final class Rectangle extends Shape { // ...}주요 키워드sealed상속은 가능하지만, 허용된 클래스만 상속 가능permits허용된 자식 클래스 목록 명시final더 이상 상속 불가non-sealed이 클래스는 다시 누구나 상속 가.. 2025. 4. 4.
java Record .record "불변 객체 + 자동 코드 생성"Java/Spring에서 record와 유사한 것들   Lombok @Data / @Value 클래스getter/setter/toString 등 자동 생성불변은 @Value, 가변은 @Data, 별도 의존성 필요Java Bean (POJO)수동으로 getter/setter 생성코드 양 많고, 불변 객체 아님DTO 클래스 (전통 방식)controller ↔ service 사이 데이터 전달용가변 객체, 코드 반복 많음Value Object 패턴equals/hashCode 기반 값 비교용 클래스record가 VO 구현에 딱 적합함Sealed Class (Java 17+)상속을 제한한 클래스 계층record는 값 자체 표현, sealed는 계층 구조 record v.. 2025. 4. 4.
Swagger와 API 명세 1. Swagger / OpenAPI (가장 많이 사용됨)Swagger란?API 명세를 자동 생성해주는 도구OpenAPI 스펙을 바탕으로 UI를 통해 확인하고 테스트 가능Spring Boot 연동 방법implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.1.0'// http://localhost:8080/swagger-ui/index.html 에서 확인 가능장점자동 문서화컨트롤러, DTO에 붙인 @Operation, @Parameter 등으로 자동 생성UI 제공Swagger UI에서 API 직접 테스트 가능OpenAPI 3.0 스펙 지원다른 툴과 연동 쉬움 (Postman, Notion 등)예시@Operation(summary = "회원.. 2025. 3. 31.
Spring Boot Test 관련 (JUnit, Mockito, AssertJ,Spring Boot Test, Testcontainers ) 1. JUnit (Java Unit Test의 표준)버전JUnit 4, 5(Jupiter) 두 가지가 존재 (요즘은 5 주력)용도단위 테스트, 통합 테스트 등 Java 테스트 전반대표 어노테이션@Test, @BeforeEach, @AfterEach, @Nested, @DisplayName 등예시 (JUnit 5)@DisplayName("간단한 더하기 테스트")@Testvoid addTest() { int sum = calculator.add(2, 3); assertEquals(5, sum);}2. Mockito (Mock 객체 생성)가짜 객체(Mock) 만들어서 서비스, 컨트롤러 단위 테스트할 때 사용DB, 외부 API 없이도 테스트 가능@Mock, @InjectMocks, when().the.. 2025. 3. 31.
Optional<T> 1. Optional이란?null을 직접 다루지 않고,"값이 있을 수도, 없을 수도 있는 객체"를 감싸는 컨테이너 클래스Optional은 null-safe한 값을 표현하는 도구리턴 타입에 사용하되, 파라미터/필드에는 되도록 쓰지 말기orElseThrow, map, filter, ifPresent 잘 쓰면 코드 깔끔해짐Optional name = Optional.of("Mars");Optional empty = Optional.empty();2. 왜 쓰는가?NullPointerException 방지"null 체크"를 명시적으로 강제리턴값이 "있을 수도/없을 수도" 있는 경우 문서화 효과예전 방식User user = repository.findByEmail(email);if (user != null) { ... 2025. 3. 31.