MNT_Dev
  • 홈
  • 태그
  • 방명록
  • 메뉴 닫기
  • 글작성
  • 방명록
  • 환경설정
    • Development (140)
      • Languege (36)
        • Java & Spring (24)
        • C# & ASP.NET (5)
        • JavaScript (2)
        • Kotlin (5)
      • DB (0)
        • Oracle (0)
      • Study (72)
        • 네트워크 (3)
        • 이펙티브 자바 (41)
        • 우아한 테크 코스 (7)
        • Next Step (3)
        • Certificate (5)
        • Side Proejct (6)
      • Error (17)
        • 개발환경 (9)
        • 트러블슈팅 (6)
      • Algorithm (12)
      • 개발환경 (1)
      • 회고 (2)
  • 홈
  • 태그
  • 방명록
Study/이펙티브 자바

[Effective Java] 공개된 API 요소에는 항상 문서화 주석을 작성하라

💥 개요 API를 작성함에 있어서 잘 작성된 문서는 중요하다. 공식 언어 명세에는 없지만 자바 프로그래머라면 알아야하는 업계 표준 API라 할 수 있다. 자바에서는 이 귀찮은 작업을 자바독이라는 유틸리티가 도와준다. https://www.oracle.com/technical-resources/articles/java/javadoc-tool.html How to Write Doc Comments for the Javadoc Tool Javadoc Home Page This document describes the style guide, tag and image conventions we use in documentation comments for Java programs written at Java Sof..

2024. 3. 18. 21:34
Study/Next Step

[Next Step] ATDD, 클린 코드 with Spring 8기 3주차 리뷰

🎈 테스트와 의존 의존은 무조건 나쁜가에 대해서 이야기했다. 물론 답은 아니다. 의존이 없으려면 하나의 객체가 모든걸 다 처리해야하고, 변경 요구사항이 발생할 때 복잡해진다. 이를 위해서 적절한 범위로 책임을 나누는게 좋고, 불필요한 의존 대상은 정리해야한다. 🔎 테스트와 관련한 궁금증 1.통합 테스트인 경우 외부 라이브러리를 테스트해야 할까? 외부 라이브러리의 기능을 검증할 필요는 없다. 하지만, 그 부분을 활용하는 로직에 대한 검증은 필요할 수 있고, 외부 라이브러리는 변경할 수 없으니 실제 객체를 활용하는게 좋다. 의존성 테스트를 할때는 실제 외부 의존성을 사용하거나, Stub 혹은 Fake로 대체하자. ❤️ 3주차 후기 외부에 의존하는 인수 테스트 미션을 통해 외부 의존성에 대한 고민을 했던 것 ..

2024. 3. 5. 19:13
Study/이펙티브 자바

[Effective Java] 스트림 병렬화는 주의해서 적용하라

💥 개요 자바에서 동시성 프로그램을 작성하기가 점점 쉬워지고 있지만, 이를 올바르고 빠르게 작성하는 일은 어렵다. 동시성 프로그래밍을 할 때는 안정성(safety)과 응답 가능(liveness) 상태를 유지하기 위해 애써야 하는데, 병렬 스트림 파이프라인 프로그래밍에서도 다를 바 없다. ☠️ 스트림을 잘못 사용하는 예 아이템 45에서 다룬 메르센 소수를 생성하는 프로그램을 살펴보자 public class MersennePrimes { static Stream primes() { return Stream.iterate(TWO, BigInteger::nextProbablePrime); } public static void main(String[] args) { primes().map(p -> TWO.pow(..

2024. 2. 21. 18:55
Languege/Java & Spring

[String Constant Pool] Heap? PermGen? 오해와 진실

🎈 개요 기술 면접을 준비하고 보던 도중, 한 면접관님께서 이런 질문을 하셨습니다. Q.문자열을 String str = "hello"; 라고 선언하면 어떻게 되나요? A.JVM 메모리 내의 Heap 영역에 있는 String Constant Pool에 저장이 됩니다. Q.String Constant Pool이 Heap영역에 저장되는게 맞아요?? 저는 당연히 Heap 영역 내부에 저장되는거 아니야? 라고 생각했습니다.(블로그를 통해서 학습 하신분은 반은 맞다. 라고 생각하실 수 있을거 같아요, 보통 Heap안에 PermGen안에 String Constant Pool이 있다고 설명함) 정확히, JAVA 7까지는 Permgen에 저장되고 JAVA 8 이후부터는 NativeMemory 내부의 Metaspace에 ..

2024. 1. 7. 18:00
Study/이펙티브 자바

[Effective Java 3E] 제네릭과 가변인수를 함께 쓸 때는 신중하라

💥 개요 가변인수와 제네릭은 잘 어우러지지 않는다. 가변인수 메서드를 호출하면 가변인수를 담기 위한 배열이 자동으로 하나 만들어지는데(컴파일 시점에 변환됨) 내부적으로 처리해야하는 이 배열을 그만 클라이언트에 노출하는 문제가 생겼다. 그 결과 varargs 매개변수에 제네릭이나 매개변수화 타입이 포함되면 알기 어려운 컴파일 경고가 발생한다. 매개변수화 타입의 변수가 타입이 다른 객체를 참조하면 힙 오염이 발생한다. 이렇게 되면 typesafe하지 않아 형변환 에러가 발생하고 제네릭 타입의 타입 안정성이 흔들린다. ☠️문제상황 public class Dangerous { // 코드 32-1 제네릭과 varargs를 혼용하면 타입 안전성이 깨진다! (191-192쪽) static void dangerous(..

2023. 12. 4. 17:34
Study/이펙티브 자바

[Effective Java 3E] 이왕이면 제네릭 타입으로 만들라

💥 개요 JDK가 제공하는 제네릭 타입과 메서드를 사용하는 일은 일반적으로 쉬운 편이지만, 제네릭 타입을 새로 만드는 일은 조금 더 어렵다. 그래도 배워두면 값어치는 충분히 한다. public class Stack { private Object[] elements; private int size = 0; private static final int DEFAULT_INITIAL_CAPACITY = 16; public Stack() { elements = new Object[DEFAULT_INITIAL_CAPACITY]; } public void push(Object e) { ensureCapacity(); elements[size++] = e; } public Object pop() { if (size =..

2023. 11. 28. 23:08
  • «
  • 1
  • 2
  • 3
  • 4
  • »

공지사항

  • GitHub & WorkSpace

전체 카테고리

  • Development 140
    • Languege 36
      • Java & Spring 24
      • C# & ASP.NET 5
      • JavaScript 2
      • Kotlin 5
    • DB 0
      • Oracle 0
    • Study 72
      • 네트워크 3
      • 이펙티브 자바 41
      • 우아한 테크 코스 7
      • Next Step 3
      • Certificate 5
      • Side Proejct 6
    • Error 17
      • 개발환경 9
      • 트러블슈팅 6
    • Algorithm 12
    • 개발환경 1
    • 회고 2
애드센스 광고 영역
  • 최근 글
  • 최근 댓글

최근 글

최근댓글

태그

  • #spring
  • #코틀린
  • #도메인 주도 개발
  • #Java
  • #파이썬
  • #spring boot
  • #이펙티브자바
  • #kotlin
  • #개발자
  • #김영한 스프링
  • #객체지향
  • #클라우드
  • #구글 클라우드
  • #스프링부트
  • #제네릭
  • #우테코
  • #BOJ
  • #백준
  • #TDD
  • #백엔드
  • #자바
  • #AWS
  • #GCP
  • #saa
  • #effective java
  • #이펙티브 자바
  • #김영한
  • #트러블슈팅
  • #스프링
  • #후기
MORE

전체 방문자

오늘
어제
전체

블로그 인기글

Powered by Privatenote Copyright © MNT_Dev All rights reserved. TistoryWhaleSkin3.4

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.