2025/11 3

getter 언제, 어떻게 사용해야 하는가!!!

Getter를 지양하라는 말을 많이 한다.사용을 지양해야 하는건 맞지만 왜 지양해야 되는지?? 생각은 깊게 해보지 않은 것 같아서 깊게 생각할 겸 정리할 겸 글을 작성해 보려고 한다.많은 글에서 “getter를 쓰지 말라”는 조언이 나온다.하지만 대부분 이유는 설명하지 않고, 금지 규칙만 남긴다.정작 중요한 건 왜 그게 문제인지, 그리고 대신 어떻게 해야 하는지다. 1. getter를 지양하라는 진짜 이유객체 지향 설계의 핵심 원칙 중 하나는 "캡슐화"이다.객체 내부의 상태를 숨기고, 외부에서 직접 조작하거나 판단하지 못하도록 보호하는 개념이다. public class Student { private final String name; private final int age; public ..

JAVA 2025.11.06

[우테코 프리코스] 3주차 회고 + 새로운 미션?!

이번 3주차 미션은 한마디로 정의할 수 있을 것 같다. "어렵다." 이전에 한 적이 있었지만, 지금처럼 깊게 설계를 하고 들어간 적은 없었던 것 같다.저번주에 커스텀 예외를 구현해보자! 라고 생각했지만, 3주차 요구사항에서 자바 기본 예외를 사용을 하라는 것이 있어서 머리가 띵했다.그 이유는 자바 기본 예외도 잘 구현할 수 있을까? 라는 생각이 먼저 들었기 때문이다. 자바 기본 예외도 잘 하지 못하면서 커스텀 예외부터 하는 것은 잘못된 순서라고 생각되었다. 그래서 이번주는 자바 기본 예외를 잘 활용 하자로 목표가 변경되었다. 1. 코드 회고mvc 나누는 부분이 제일 어려웠다. 다른 패턴도 있었지만, 이것부터 잘 해야 다른 패턴도 잘 적용할 수 있다는 생각이 들어 mvc부터 잘 잡고 들어가자는 생각을 했다..

알고리즘 2025.11.05

[자료구조] 자료구조 기본 이해하기

ArrayList기본 개념동적 배열(Dynamic Array) 기반의 리스트내부적으로 Object[] elementData 배열을 사용함배열이 꽉 차면 1.5배로 자동 확장인덱스 기반 접근이 빠르지만, 중간 삽입/삭제는 느림첫 add()시 10크기 배열 생성됨.List list = new ArrayList();list.add("A"); // elementData[0] = "A"list.add("B"); // elementData[1] = "B"list.get(0); // O(1)로 접근list.remove(1); // 뒤의 원소를 전부 한 칸씩 앞으로 이동 → O(n)데이터가 순차적으로 추가/조회될 때 유리Stack, Queue를 직접 구현할 때 내부 자료구조로 활용 가능LinkedListpublic..

JAVA 2025.11.04