yooputer's devlog

고정 헤더 영역

글 제목

메뉴 레이어

yooputer's devlog

메뉴 리스트

  • 홈
  • 분류 전체보기 (167)
    • Computer Science (10)
      • 알고리즘 (2)
      • 데이터베이스 (8)
    • Programming Language (3)
      • Java (1)
      • Python (1)
      • JavaScript (1)
    • Framework (9)
      • Spring | SpringBoot (6)
      • SwiftUI (0)
      • DBMS (2)
    • Project (37)
      • WithParents (18)
      • Meta ESG (7)
      • MugLog (1)
      • 영풍문고 리뉴얼 (3)
      • 정산타임 (1)
      • 포트폴리오(NextJS + Notion API) (6)
      • etc. (1)
    • Coding Test (43)
      • 개념 (0)
      • 문제풀이 (43)
    • 컴공 수업 (0)
      • 오픈소스 소프트웨어 (0)
      • 정보검색 (0)
      • 컴파일러 (0)
    • Development Study (57)
      • 개발 관련 도서 (7)
      • 이펙티브 자바 (15)
      • SQLP (2)
      • 잡기술 (14)
      • 도커 (4)
      • 대용량 트래픽 처리 (6)
      • AI 개발 활용기 (4)
      • HTML&CSS (2)
      • 프론트엔드 (2)
    • 취업준비 (1)
      • 면접후기 (0)
      • 면접준비 (0)
    • 주절주절 (4)

검색 레이어

yooputer's devlog

검색 영역

컨텐츠 검색

분류 전체보기

  • [이펙티브 자바] Item 4. 인스턴스화를 막으려거든 private 생성자를 사용하라 | 2장

    2023.03.29 by yooputer

  • [이펙티브 자바] Item 3. private 생성자나 열거타입으로 싱글턴임을 보증하라 | 2장

    2023.03.29 by yooputer

  • [이펙티브 자바] Item 2. 생성자에 매개변수가 많다면 빌더를 고려하라 | 2장

    2023.03.22 by yooputer

  • [이펙티브 자바] Item 1. 생성자 대신 정적 팩토리 메서드를 고려하라 | 2장

    2023.03.15 by yooputer

  • [이펙티브 자바] 개요, 자바 기본개념 | 1장

    2023.03.15 by yooputer

  • [SpringBoot] 검색기능 구현, 몽고디비 쿼리 방법 정리

    2023.03.03 by yooputer

  • [SpringBoot] 리액티브 프로그래밍 | 간단한 이커머스 애플리케이션 예제

    2023.02.28 by yooputer

  • [SpringBoot] 리액티브 프로그래밍, 웹플럭스, 타임리프 간단한 예제

    2023.02.24 by yooputer

[이펙티브 자바] Item 4. 인스턴스화를 막으려거든 private 생성자를 사용하라 | 2장

이펙티브 자바 2장 Item4를 요약한 내용입니다. java.lang.Math와 java.util.Arrays처럼 기본 타입 값이나 배열 관련 메서드들을 모아놓은 클래스, java.util.Collections처럼 정적메서드를 모아놓은 클래스, final 클래스와 관련 메서드를 모아놓은 클래스는 인스턴스로 만들어 사용하도록 설계된게 아니다. 따라서 인스턴스화를 막아야 한다. 추상클래스로 만드는 것은 인스턴스화를 막을 수 없다. 하위 클래스를 만들어 인스턴스화할 수 있기 때문이다. 인스턴스화를 막기 위해서 private 생성자를 사용한다. 생성자를 private로 설정하면 외부에서 호출할 수 없기 때문에 인스턴스를 생성할 수 없다. 하지만 클래스 내부에서는 생성자를 호출할 수 있는데 이를 막기 위해서 생성..

Development Study/이펙티브 자바 2023. 3. 29. 09:56

[이펙티브 자바] Item 3. private 생성자나 열거타입으로 싱글턴임을 보증하라 | 2장

이펙티브 자바 2장 Item3을 요약한 내용입니다. 싱글턴이란 인스턴스를 오직 하나만 생성할 수 있는 클래스이다. 싱글턴을 만드는 방법에는 public static final 필드를 이용하는 방법과 정적 팩터리 메서드를 구현하는 방법과 원소가 하나인 enum 타입으로 구현하는 방법이 있다. public static final 필드를 이용하는 방법의 예제는 아래와 같다. public class Elvis { public static final Elvis INSTANCE = new Elvis(); private Elvis(){...} } 생성자가 private이기 때문에 외부에서 호출할 수 없고 Elvis.INSTANCE를 초기화할 때 딱 한번만 실행된다. 이 방식의 장점은 해당 클래스가 싱글턴임이 명확하고..

Development Study/이펙티브 자바 2023. 3. 29. 09:42

[이펙티브 자바] Item 2. 생성자에 매개변수가 많다면 빌더를 고려하라 | 2장

선택적 매개변수가 많을 때 사용할 수 있는 패턴으로는 점층적 생성자 패턴, 자바빈즈 패턴, 빌더 패턴이 있다. 점층적 생성자 패턴이란 필요한 매개변수에 따라 생성자 혹은 정적 팩토리 메서드를 여러개 만드는 방식이다. 하지만 매개변수가 많아지면 잘못된 매개변수를 넘기거나 매개변수 순서가 바뀔 수도 있어서 버그를 유발한다 자바빈즈 패턴이란 매개변수가 없는 생성자로 객체를 만든 후 세터메서드를 통해 매개변수의 값을 설정하는 방식이다 객체 하나를 만들기 위해 여러 메서드를 호출해야 하고, 객체가 완전히 생성되기 전까지는 일관성이 무너진 상태이다. 클래스를 불변으로 만들 수 없으며 스레드 안전성을 위해 프로그래머가 추가적으로 작업해줘야 한다. 빌더패턴이란 빌더객체를 생성하고 메서드체이닝을 통해 원하는 매개변수를 ..

Development Study/이펙티브 자바 2023. 3. 22. 10:06

[이펙티브 자바] Item 1. 생성자 대신 정적 팩토리 메서드를 고려하라 | 2장

클라이언트가 클래스의 인스턴스를 얻는 수단에는 public 생성자와 정적 팩토리 메서드가 있다. 일반적으로 생성자를 통해 객체를 생성하고 반환하는 경우가 많은데 정적 팩토리 메서드를 사용하면 많은 이점을 얻을 수 있다. 정적 팩토리 메소드를 사용해야하는 이유는 다음과 같다. 1. 이름을 가질 수 있다. 메소드의 이름을 통해 반환할 객체의 특성을 설명할 수 있다. 한 클래스에 시그니처가 같은 생성자가 여러개일 때 정적 팩토리 메서드를 사용하는 것이 효과적이다. 2. 호출될 때마다 인스턴스를 새로 생성하지 않아도 된다. 정적 팩토리 메서드를 통해 반복되는 요청에 대해 같은 객체를 반환할 수 있다. 이런식으로 인스턴스를 통제하여 클래스를 싱글턴으로 만들 수도 있고 인스턴스화 불가로 만들 수도 있다. 3. 반환..

Development Study/이펙티브 자바 2023. 3. 15. 11:04

[이펙티브 자바] 개요, 자바 기본개념 | 1장

이펙티브 자바 1장을 요약한 내용입니다. 이 책은 자바 언어와 라이브러리(java.lang, java.util, java.io, java.util.concurrent, java.util.function 등)을 효과적으로 사용할 수 있게 하기위해 쓰여졌다. 이 책은 총 90개의 아이템을 담았다. 각각의 아이템은 업계 최고의 프로그래머들이 유익하다고 인정하는 관례이다. 아이템들은 서로 독립적이라 순서대로 읽을 필요는 없다. 이 책의 규칙 대부분은 명료성과 단순성이라는 핵심적인 원칙에서 파생되었다. 이 책에서는 성능에 집중하는 부분이 많지 않다. 대신 프로그램을 명확하고, 정확하고, 유용하고, 견고하고, 유연하고, 관리하기 쉽게 짜는데 집중한다. 기술용어는 대부분 자바8용 언어 명세를 따른다. 자바가 지원하는..

Development Study/이펙티브 자바 2023. 3. 15. 09:34

[SpringBoot] 검색기능 구현, 몽고디비 쿼리 방법 정리

그렉 턴키스트, 『스프링 부트 실전 활용 마스터』의 2장 스프링부트 웹 애플리케이션 만들기를 요약한 내용입니다. 내용 스프링데이터 쿼리 메서드 쿼리 메서드를 활용해 검색기능 구현 커스텀 쿼리 작성 Example 쿼리 평문형 연산 쿼리 방법별 장단점 비교 스프링 데이터 쿼리 메서드 메소드 이름 규칙만 잘 지키면 쿼리문을 직접 작성할 필요 없이 스프링 데이터가 쿼리메서드를 자동으로 만들어준다. 쿼리 메서드관련 내용은 아래 링크에서 자세히 확인할 수 있다 https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.query-methods Spring Data JPA - Reference Documentation Example..

Framework/Spring | SpringBoot 2023. 3. 3. 09:49

[SpringBoot] 리액티브 프로그래밍 | 간단한 이커머스 애플리케이션 예제

그렉 턴키스트, 『스프링 부트 실전 활용 마스터』의 2장 스프링부트 웹 애플리케이션 만들기를 요약한 내용입니다. 내가 정복할 내용들 리액티브 데이터 스토어의 요건 몽고디비 적용 도메인 객체 정의 레파지토리 생성 테스트 데이터 로딩 장바구니 보여주기 장바구니에 상품 담기 리액티브 데이터 스토어의 요건 리액티브 프로그래밍은 원래 빠르지 않다. 단일 스레드의 처리 속도 기준으로 보면 리액티브 프로그래밍은 여러가지 오버헤드를 수반하므로 성능이 저하된다. 대규모의 트래픽이 발생하고 백엔드에서 대용량의 데이터를 처리하는 환경에서는 시스템 자원의 한도 내에서 스레드 사용 효율이 극대화되기 때문에 유용하다. 리액티브가 제대로 동작하려면 데이터베이스도 리액티브하게 동작해야 한다. 리액티브 패러다임을 지원하는 데이터베이스..

Framework/Spring | SpringBoot 2023. 2. 28. 11:19

[SpringBoot] 리액티브 프로그래밍, 웹플럭스, 타임리프 간단한 예제

그렉 턴키스트, 『스프링 부트 실전 활용 마스터』의 1장 스프링부트 웹 애플리케이션 만들기를 요약한 내용입니다. 프로젝트 생성 인텔리제이의 Spring Initializr로 새로운 프로젝트를 생성한다. 디펜던시는 Spring Reactive Web과 Thymeleaf 총 2개를 선택하고 프로젝트를 생성한다. Dish 클래스와 Kitchen 서비스, Server 컨트롤러를 작성하고 실행후 /server 요청을 해봤는데 404 에러가 뜬다 왜지...? -> 스프링부트 버전을 2.4.2로 바꾸어서 해결 ServerController, KitchenService, Dish 도메인 객체 정의 ServerController는 2개의 웹 메서드를 가지고 있다. 반환되는 미디어 타입은 text/event-steam이고..

Framework/Spring | SpringBoot 2023. 2. 24. 09:32

추가 정보

인기글

최신글

페이징

이전
1 ··· 15 16 17 18 19 20 21
다음
TISTORY
yooputer's devlog © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바