📌 오늘 학습한 주제
- Java 기본 변수 타입(Primitive Type) 및 참조 타입(Reference Type)과 Scope (
VariableApp.java)
- Wrapper Class 개념 및 기본 타입과의 연산 처리
- 객체 생성 및 인스턴스 멤버(변수, 메소드) 접근 제어 (
TeacherApp.java)
- Lombok 디자인 패턴: Builder 패턴을 활용한 DTO 객체 생성 (
BlogApp.java)
💡 오늘 배운 것 — 나만의 언어로
① 오늘의 목표
- Java 프로그래밍 기초 체계(기본/참조 데이터 타입, Scope)를 정립하고, 클래스 인스턴스 생성 및 Builder 패턴을 활용한 객체 생성 기법을 익히기
② 학습할 내용
- 변수의 종류와 Scope (
VariableApp.java): 정수형(int), 실수형(double), 문자형(char), 논리형(boolean), 문자열(String) 기본 타입과 참조 타입을 구분하고, 선언 위치(클래스 블록 vs 메소드 블록)에 따른 멤버 변수와 지역 변수의 Scope 차이를 배웠다.
- Wrapper Class (
VariableApp.java): 기본 타입 객체화 클래스인 Wrapper Class(Integer 등)의 특징을 확인하고 기본 타입과의 덧셈 연산을 다루었다.
- 인스턴스 생성 및 접근 (
TeacherApp.java): new 연산자를 활용해 클래스의 인스턴스를 메모리에 생성하고, Getter/Setter 메소드 및 인스턴스 변수에 접근하는 원리를 확인했다.
- Builder 패턴 적용 (
BlogApp.java): 가독성과 유연성을 높여주는 Builder 패턴(BlogRequestDTO.builder()...build())을 통해 객체를 생성하고 Setter를 통한 데이터 수정 동작을 연습했다.
💻 오늘 핵심 코드
1. Java 데이터 타입과 Scope 및 Wrapper Class (VariableApp.java)
public class VariableApp {
public static void main(String args[]) {
String name = "임정섭";
int age = 20;
double height = 178.0;
char gender = 'm';
boolean isMarriage = true;
System.out.println("name " + name);
System.out.println("age " + age);
System.out.println("height " + height);
System.out.println("gender " + gender);
System.out.println("isMarriage " + isMarriage);
Integer ii = 10;
System.out.println(10 + ii);
}
}
2. 인스턴스 생성 및 메소드/변수 접근 (TeacherApp.java)
import features.var.Teacher;
public class TeacherApp {
public static void main (String[] args) {
Teacher teacher = new Teacher();
System.out.println("teacher - " + teacher);
teacher.setName("임정섭");
String name = teacher.getName();
System.out.println(name);
teacher.name = "inspire";
System.out.println(name);
}
}
3. Builder 패턴을 활용한 DTO 객체 생성 (BlogApp.java)
import features.blogs.domain.dto.BlogRequestDTO;
public class BlogApp {
public static void main(String[] args) {
System.out.println(">>>> Builder 이용한 객체생성");
BlogRequestDTO request = BlogRequestDTO.builder()
.title("자바 첫날입니다")
.content("재미있다")
.email("jslim9413@naver.com")
.build();
request.setTitle("조기퇴근");
System.out.println("title : " + request.getTitle());
}
}
🛠️ 실습 / 결과물 & 참고 자료
③ 실습 / 결과물
- 강의 실습코드:
VariableApp.java, TeacherApp.java, BlogApp.java 코드를 작성하고 실행하여 기본 변수 출력, 인스턴스 생성, Builder 패턴 기반 DTO 데이터 제어 동작을 확인 함.
④ 참고 자료
- Oracle Java Documentation: Java Primitive Data Types & Class Instantiation 예제 참고
🔍 문제와 해결
- 막힌 부분:
new 연산자로 생성된 인스턴스와 Builder 패턴 방식으로 생성된 DTO 객체 간의 생성 구조 및 변수 접근자(private vs public)에 따른 접근 제한 개념 점검.
- 해결 방법: 변수의 direct 접근 대신 Getter/Setter 메소드를 사용하는 encapsulation(캡슐화) 원칙을 확인하고, Builder 패턴을 사용해 객체 생성 시 생성자 오버로딩 순서 오염 방지 이점을 파악함.
🎯 다음에 할 일