heechann
이전 블로그 글 : https://heechann.github.io/
close
프로필 배경
프로필 로고

heechann

  • 글 (25)
    • Java (5)
    • Spring Boot (6)
    • Spring Framework (1)
    • Spring JPA (1)
    • Gradle (2)
    • MySQL (1)
    • 오픈소스 (2)
    • 일상 (5)
    • 책 (0)
    • archives (1)
    • 프로젝트 (1)
  • 홈
  • 태그
  • 방명록
코딩 테스트에서 잘못 사용했던 Object.clone()

코딩 테스트에서 잘못 사용했던 Object.clone()

Java로 코딩테스트 문제를 풀던 중, 2차원 배열을 clone() 메서드로 복제한 후 수정하는 로직에서 원본 배열까지 함께 변경되는 문제를 경험했다. 당시에는 "clone이 얕은 복사를 수행하기 때문"이라는 표면적인 이해만으로 넘어갔고, 2차원 배열은 무조건 2중 반복문으로 복사해야겠다는 생각만 가진 채 문제를 마무리했다. 최근 『이펙티브 자바』와 『이것이 자바다』를 읽으며 배열의 메모리 구조와 clone()의 동작 원리를 깊이 있게 학습할 기회가 있었다. 힙 메모리에서 1차원 배열과 2차원 배열이 각각 어떻게 관리되는지, 그에 따라 clone()이 어떻게 동작하는지를 이해하면서 가변 객체, 불변 객체, 깊은 복사, 얕은 복사의 개념을 명확히 정리할 수 있었다. 이 글에서는 학습한 내용을 바탕으로 cl..

  • format_list_bulleted Java
  • · 2025. 11. 4.
  • textsms
디자인 패턴 : 빌더 & 싱글톤 패턴 구현해보기 (with. 이펙티브 자바)

디자인 패턴 : 빌더 & 싱글톤 패턴 구현해보기 (with. 이펙티브 자바)

Spring Boot로 개발하다 보면 @Builder, @Service같은 어노테이션을 너무나 자연스럽게 사용하게 됩니다. 하지만 문득 이런 생각이 들었습니다."만약 Lombok이나 Spring이 없다면 어떻게 구현해야 할까?" 그래서 이번에는 빌더 패턴과 싱글톤 패턴을 직접 구현하면서 이전까지 이론적으로만 학습해왔던 디자인 패턴들에 대해 자세하게 공부해 보며 직접 적용할 때는 어떤 점을 주의해야하는지 학습해 보았습니다. 1. 빌더 패턴 왜 필요할까?객체를 생성할 때 이런 코드를 본 적 있으신가요?Pizza pizza = new Pizza(12, "thin", "mozzarella", "tomato", "olive", "pepperoni", true, false); 매개변수가 8개나 되는데, 순서도 헷갈..

  • format_list_bulleted Java
  • · 2025. 10. 28.
  • textsms
객체지향 실습 - 음식 주문 시스템 구현하기 (1)

객체지향 실습 - 음식 주문 시스템 구현하기 (1)

책이랑 강의로 객체지향 패러다임에 대해 공부하며 직접적으로 문제 하나에 대해 처음부터 끝까지 코드를 작성하는 연습을 진행해야겠다는 생각이 들었다. 계속 개념적으로만 학습을 진행해 실제 구현을 해나갈 때 어떤 고민들과 문제점을 마주치는지 경험하고자 레스토랑 음식 주문 시스템을 구현해 보기로 결정했다. 관련 레포지토리는 아래 링크를 참고해 주세요. 문제의 요구사항은 생성형 AI가 일부 만들어줘서 제시된 스켈레톤 코드를 필수적으로 구현하려 하진 않았고, 핵심 기능에 해당하는 입출력 예시와 요구사항을 만족시키도록 코드를 작성하였습니다. GitHub - HeeChanN/oop-food-order-management-system: OOP 연습(2) - 레스토랑 주문 시스템OOP 연습(2) - 레스토랑 주문 시스템...

  • format_list_bulleted Java
  • · 2025. 10. 14.
  • textsms
빠트렸던 Java 개념 복습하기

빠트렸던 Java 개념 복습하기

최근 Java 문법에 대해 책을 정독하며 공부하며 이번에 처음 알게 되어 한번은 정리해놓고 싶은 개념들을 정리해보려고 합니다. 학교에서 한 학기 동안 Java 프로그래밍을 들으며 학습했던 내용 외에는 Java 언어에 대해 직접 책을 정독하며 공부한 적이 없었는데, 그만큼 지식에 많은 빈틈을 갖고 있었고 이번 기회에 이렇게 학습하고 기록할 수 있다는 점에서 다행이라고 생각합니다. 리터럴 정의리터럴은 너무 간단한데 용어 자체를 이번에 처음으로 알게되었다. 기본형 타입에 값을 넣어서 선언한 경우를 리터럴이라고 부른다. String 같은 경우 참조 타입 리터럴로 Heap에 String 상수 풀을 관리하며 동일한 문자열 리터럴에 대해서 동일한 객체를 참조한다.대학교에서 C를 기반으로 학습을 진행했어서 그런지 이런..

  • format_list_bulleted Java
  • · 2025. 9. 30.
  • textsms
객체지향 학습 (1)

객체지향 학습 (1)

Java로 코드를 작성하는데 객체지향 패러다임뿐만 아니라 상속, 캡슐화 같은 개념들조차도 진짜 개념적으로만 사용하고 "왜 사용해야 하는가?"라는 질문에 답을 할 수 없었다. 매번 생성형 AI를 이용해서 객체지향을 학습하려고 도전해 봤지만, 객체지향 패러다임에 대해 아무것도 모르는 내 입장에서 AI가 제공해 주는 정보가 진실인지 거짓인지 판별할 지식조차 존재하지 않아 이게 학습하는 것이 아니라 시간을 버리는 느낌을 받았다. 그래서, 가장 쉽고 빠르게 접근할 수 있는 방법인 책을 이용하기로 마음먹었다. 온라인 서점에 객체지향을 검색해 보면 리뷰가 많은데 평점도 좋은 책이 보이는데 바로 『 객체지향의 사실과 오해 』이다. 이 책을 3주 정도 시간을 들여 완독 하며 객체지향 패러다임을 개념적으로 알 수 있었고 ..

  • format_list_bulleted Java
  • · 2025. 9. 9.
  • textsms
  • navigate_before
  • 1
  • navigate_next
전체 카테고리
  • 글 (25)
    • Java (5)
    • Spring Boot (6)
    • Spring Framework (1)
    • Spring JPA (1)
    • Gradle (2)
    • MySQL (1)
    • 오픈소스 (2)
    • 일상 (5)
    • 책 (0)
    • archives (1)
    • 프로젝트 (1)
최근 글
인기 글
태그
  • #일상
  • #[LG유플러스] 유레카 백엔드
  • #객체지향
  • #restdocs-api-spec
  • #멀티캠퍼스부트캠프
  • #유레카 3기
  • #부트캠프후기
  • #Spring Boot
  • #java
  • #멀티캠퍼스IT부트캠프
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바