오리너구리는 왜 포유류일까
close
프로필 배경
프로필 로고

오리너구리는 왜 포유류일까

  • 분류 전체보기 (114)
    • Study (114)
      • 프로젝트 (2)
      • Spring In Action (7)
      • CSAPP (14)
      • 알고리즘 (9)
      • CS (11)
      • SICP (68)
      • SQL (2)
      • ADSP (1)
  • 홈
  • 태그
  • 방명록

[Java] String 형변환: String.valueOf(), toString(), ""의 성능과 안전성 비교 분석

1. 문제 제기 (Introduction & Problem Statement)관찰 현상 또는 질문:자바에서 객체를 문자열로 변환할 때 String.valueOf(), Object.toString(), "" + object 등 다양한 방법이 존재합니다. 개발을 하다 보면 무심코 이 방법들을 혼용하게 되는데, "과연 이들 사이에 어떤 차이가 있으며, 어떤 상황에서 무엇을 사용하는 것이 가장 적절한가?"라는 의문이 생겼습니다. 특히 null 값을 다룰 때 각 방식의 동작이 달라 예기치 않은 버그를 유발할 수 있습니다.탐구 목표:본 아티클에서는 각 문자열 변환 방식의 내부 동작 원리, 특히 NullPointerException (NPE) 발생 가능성과 성능상의 미묘한 차이를 비교 분석하고자 합니다. 이를 통해 ..

  • format_list_bulleted Study/CS
  • · 2025. 10. 21.
  • textsms

[Java] 제네릭

🚀 이 주제를 선택한 이유 & 학습 목표선택 배경: 자바 컬렉션 프레임워크를 사용하면서 List, Map과 같이 타입을 지정하는 문법을 당연하게 사용해왔습니다. 하지만 제네릭이 내부적으로 어떻게 동작하는지, 왜 필요한지에 대한 깊이 있는 이해가 부족하다고 느껴졌습니다. 특히 면접에서 타입 소거(Type Erasure)나 와일드카드(Wildcard)에 대한 질문을 받을 경우 명확하게 설명하기 위해 이번 기회에 제대로 정리하고 싶었습니다.학습 목표:제네릭의 필요성과 장점을 명확히 설명할 수 있게 됩니다.타입 소거(Type Erasure)의 개념과 그로 인해 발생하는 제약을 이해합니다.제네릭 와일드카드(Wildcards)의 종류(? extends T, ? super T)를 이해하고, PECS 원칙을 설명할 ..

  • format_list_bulleted Study/CS
  • · 2025. 10. 15.
  • textsms

[소프트웨어 공학] 소프트웨어 개발 방법론

🚀 이 주제를 선택한 이유 & 학습 목표선택 배경: NCS 직무 기술서나 채용 공고에서 '애자일', '스크럼'과 같은 개발 방법론에 대한 이해를 요구하는 경우가 많았습니다. 정보처리기사 필기시험을 준비하며 학습했던 다양한 소프트웨어 생명 주기 모델들을 다시 복습하여, 각 방법론의 특징과 차이점을 명확히 정리하고 실제 개발 프로세스에 대한 이해를 높이고자 합니다.학습 목표: 전통적인 폭포수 모델부터 현대적인 애자일 모델까지 각 개발 방법론의 핵심 개념과 장단점을 설명할 수 있게 됩니다. 특히 애자일 방법론의 대표적인 예시인 XP(eXtreme Programming)의 핵심 가치와 실천사항을 이해하고, 다른 모델과 비교하여 언제 어떤 모델이 적합한지 판단하는 기준을 정립합니다.📚 핵심 개념 및 원리소프트..

  • format_list_bulleted Study/CS
  • · 2025. 9. 17.
  • textsms

Java의 상태 제어 키워드: private, static, final

🚀 이 주제를 선택한 이유 & 학습 목표선택 배경: 객체 지향 프로그래밍의 핵심인 캡슐화를 공부하던 중, private 키워드와 함께 사용되는 static, final의 미묘한 차이가 혼란스러웠습니다. 특히 '어차피 불변인데 공유와 개별의 차이가 무엇인가?'라는 의문을 해결하고, 각 키워드의 역할을 명확히 이해하여 올바른 객체 설계를 하고 싶었습니다.학습 목표:private, static, final 각각의 핵심 역할을 자신의 언어로 설명할 수 있다.이 키워드들의 조합(private static, private final, private static final)이 필드의 '성격'을 어떻게 규정하는지 설명할 수 있다.'개별적인 불변 값(final)'과 '공유되는 불변 값(static final)'의 차이..

  • format_list_bulleted Study/CS
  • · 2025. 8. 13.
  • textsms

허프만 부호화

🚀 이 주제를 선택한 이유 & 학습 목표선택 배경: SICP 2.3.4절을 학습하며 데이터의 통계적 특성을 이용해 최적의 자료구조(트리)를 동적으로 생성하는 과정에 깊은 인상을 받았습니다. 단순한 이론을 넘어 실제 데이터 압축 기술의 근간을 이루는 이 알고리즘을 CS 학습 템플릿에 맞추어 제대로 소화하고 싶었습니다.학습 목표:고정 길이 부호화의 한계와 가변 길이 부호화의 필요성을 설명할 수 있다.'접두부호(Prefix Code)'가 왜 필요한지, 그리고 허프만 트리가 어떻게 이 규칙을 보장하는지 이해한다.탐욕 알고리즘(Greedy Algorithm)을 기반으로 허프만 트리를 구축하는 과정을 단계별로 설명할 수 있다.생성된 트리를 이용해 메시지를 인코딩(부호화)하고 디코딩(복호화)하는 원리를 설명할 수 ..

  • format_list_bulleted Study/CS
  • · 2025. 8. 13.
  • textsms

정렬 3편 (힙(Heap)과 힙 정렬)

🚀 이 주제를 선택한 이유 & 학습 목표선택 배경:이전 글에서 분할 정복 기반의 병합 정렬과 퀵 정렬을 학습하며, 두 알고리즘이 가진 명확한 트레이드오프를 확인했습니다. 병합 정렬은 항상 O(n log n) 성능을 보장하지만 O(n)의 추가 공간이 필요했고, 퀵 정렬은 O(log n)의 공간만 사용하지만 최악의 경우 O(n²)의 성능 저하 위험이 있었습니다. 이에 "메모리도 적게 쓰면서, 최악의 경우에도 O(n log n)을 보장하는 정렬은 없을까?"라는 질문에 대한 답을 찾기 위해 힙 정렬을 학습합니다.학습 목표:'힙(Heap)' 자료구조의 정의(완전 이진 트리, 힙 속성)를 이해하고, 배열로 힙을 표현하는 원리를 설명할 수 있습니다.힙 정렬의 두 가지 핵심 단계인 '힙 구성(Build-Heap)'과..

  • format_list_bulleted Study/CS
  • · 2025. 7. 29.
  • textsms
  • navigate_before
  • 1
  • 2
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (114)
    • Study (114)
      • 프로젝트 (2)
      • Spring In Action (7)
      • CSAPP (14)
      • 알고리즘 (9)
      • CS (11)
      • SICP (68)
      • SQL (2)
      • ADSP (1)
최근 글
인기 글
최근 댓글
태그
  • #spring boot
  • #spring
  • #string
  • #scip
  • #알고리즘
  • #csapp
  • #dp
  • #SICP
  • #Java
  • #백준
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바