yooputer's devlog

고정 헤더 영역

글 제목

메뉴 레이어

yooputer's devlog

메뉴 리스트

  • 홈
  • 분류 전체보기 (165)
    • Computer Science (10)
      • 알고리즘 (2)
      • 데이터베이스 (8)
    • Programming Language (3)
      • Java (1)
      • Python (1)
      • JavaScript (1)
    • Framework (9)
      • Spring | SpringBoot (6)
      • SwiftUI (0)
      • DBMS (2)
    • Project (36)
      • WithParents (18)
      • Meta ESG (7)
      • MugLog (1)
      • 영풍문고 리뉴얼 (3)
      • 정산타임 (1)
      • 포트폴리오(NextJS + Notion API) (5)
      • 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)
    • 주절주절 (3)

검색 레이어

yooputer's devlog

검색 영역

컨텐츠 검색

분류 전체보기

  • 데이터 모델링, ERD, 3층 스키마

    2023.04.12 by yooputer

  • [이펙티브 자바] Item 9. try-finally 보다 try-with-resources를 사용하라 | 2장

    2023.04.12 by yooputer

  • [이펙티브 자바] Item 8. finalizer와 cleaner 사용을 피하라 | 2장

    2023.04.12 by yooputer

  • [이펙티브 자바] Item 7. 다 쓴 객체 참조를 해제하라 | 2장

    2023.04.05 by yooputer

  • [이펙티브 자바] Item 6. 불필요한 객체 생성을 피하라 | 2장

    2023.04.05 by yooputer

  • [이펙티브 자바] Item 5. 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라 | 2장

    2023.04.05 by yooputer

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

    2023.03.29 by yooputer

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

    2023.03.29 by yooputer

데이터 모델링, ERD, 3층 스키마

데이터 모델링이란? 데이터 모델링의 특징 데이터 모델링의 단계 데이터 모델링 고려사항 ERD 작성 절차 3층 스키마 구조 3층 스키마 독립성 데이터 모델링이란? 현실세계를 데이터베이스에 표현하는 것 데이터 모델링의 특징 1. 추상화 2. 단순화 3. 명확성 데이터모델링의 단계 1. 개념적 모델링 엔티티, 속성, 관계 도출 👉 ERD 작성 2. 논리적 모델링 모든 릴레이션 정의, 식별자 도출, 정규화 3. 물리적 모델링 데이터베이스 구축, 성능, 보안, 가용성 고려 데이터모델링 고려사항 1. 데이터모델의 독립성 👉 정규화를 통해 중복된 데이터 제거 2. 고객의 요구사항 표현 3. 데이터 품질 확보 👉 데이터 표준 정의, 준수 ERD 작성 절차 1. 엔티티 도출 2. 엔티티 배치 👉 중요한 엔티티는 왼쪽 상..

Computer Science/데이터베이스 2023. 4. 12. 15:28

[이펙티브 자바] Item 9. try-finally 보다 try-with-resources를 사용하라 | 2장

이펙티브 자바 2장 Item9를 요약한 내용입니다. InputStream, OutputStream, java.sql.Connection등 close메서드를 호출해 직접 닫아줘야하는 라이브러리들이 존재한다. 자원을 닫지 않으면 성능문제로 이어지기 때문에 반드시 자원을 반환해주어야 한다. 자원 회수를 보장하기위해 try-finally문을 사용할 수 있지만 자원이 여러개면 코드가 너무 지저분해진다. 또한 예외 추적이 불가능해지기도 한다. try-with-resources문을 사용하면 정확하고 쉽게 자원을 회수할 수 있다. 이 구조를 사용하기 위해서는 사용하는 자원이 AutoCloseable 인터페이스를 구현해야 한다. catch절을 사용해 다수의 예외를 처리할 수 있다

Development Study/이펙티브 자바 2023. 4. 12. 14:33

[이펙티브 자바] Item 8. finalizer와 cleaner 사용을 피하라 | 2장

이펙티브 자바 2장 Item8를 요약한 내용입니다. 자바의 객체소멸자 자바는 finalizer와 cleaner라는 객체 소멸자를 제공한다. finalizer와 cleaner은 많은 문제를 야기하므로 특정 상황을 제외하곤 사용하지 않는다 finalizer와 cleaner의 문제점 1. 즉시 수행된다는 보장이 없다. 언제 수행될지는 가비지 컬렉터 알고리즘에 달려있다. 2. 수행 여부조차 보장하지 않는다 System.gc나 System.runFinalization 메서드는 실행가능성을 높여주지만 실행을 보장하진 않는다 이들의 실행을 보장하는 System.runFinalizersOnExit와 Runtime.runFinalizerOnExit가 있지만 심각한 결함이 존재한다 3. finalizer 동작중 예외 발생..

Development Study/이펙티브 자바 2023. 4. 12. 14:04

[이펙티브 자바] Item 7. 다 쓴 객체 참조를 해제하라 | 2장

이펙티브 자바 2장 Item7를 요약한 내용입니다. 자바처럼 가비지 컬렉터를 갖춘 언어는 메모리 관리에 신경쓸 일이 줄어든다. 하지만 다 쓴 객체의 참조를 해제하지 않는 경우 메모리 누수가 발생할 수 있다. 다 쓴 참조(obsolete reference)란 앞으로 다시 쓰지 않을 참조라는 뜻이다. 다 쓴 참조라도 그 객체를 참조하는 객체가 존재한다면 가비지컬렉터가 회수해가지 못한다. 다 쓴 참조를 해제하는 가장 좋은 방법은 참조를 담은 변수를 유효 범위 밖으로 밀어내는 것이다 이것은 변수의 범위를 최소가 되게 정의하면 자연스럽게 이루어진다. 스스로 메모리를 관리하는 클래스는 사용하지 않는 참조를 null처리하여 가비지 컬렉터에게 해당 객체는 더이상 사용하지 않을 것임을 알려야 한다. 객체 참조를 캐시에 ..

Development Study/이펙티브 자바 2023. 4. 5. 11:00

[이펙티브 자바] Item 6. 불필요한 객체 생성을 피하라 | 2장

이펙티브 자바 2장 Item6를 요약한 내용입니다. 객체 생성 vs 객체 재사용 요즘 JVM의 가비지컬렉터는 최적화가 잘 되어 있어 가벼운 객체를 다룰 때는 객체 풀을 만들어 객체를 재사용하는 것보다 새로 생성하는게 훨씬 빠르다. 따라서 일반적으로 프로그램의 명확성, 간결성, 기능을 위해 객체를 추가로 생성하는 일은 문제가 되지 않는다. 하지만 굳이 필요하지 않는 객체 생성은 피하는 것이 좋다. 또한 객체를 재사용했을 때 문제가 없고, 객체 생성 비용이 큰 경우에는 객체를 재사용하는 것이 좋다. 불필요한 객체 생성을 줄이는 방법 불필요한 객체 생성을 줄이기 위해서는 생성자 대신 정적 팩터리 메서드를 사용하는 것이 좋다. 생성자는 호출할 때마다 새로운 객체를 만들지만 팩터리 메서드는 재사용되는 객체를 반환..

Development Study/이펙티브 자바 2023. 4. 5. 10:25

[이펙티브 자바] Item 5. 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라 | 2장

이펙티브 자바 2장 Item5를 요약한 내용입니다. 클래스에서 자원을 사용해야하는 경우 클래스 내에서 자원 인스턴스를 직접 생성하고 정적 유틸리티 클래스 혹은 싱글턴으로 구현하는 경우가 있다. 하지만 이 방법은 자원에 따라 다른 동작을 할 수 없고 테스트가 어려우며 멀티스레드 환경에서 사용할 수 없다. 대신 인스턴스를 생성할 때 생성자에게 필요한 자원을 넘겨주는 의존 객체 주입방식으로 구현하는 것이 좋다 의존객체주입은 생성자, 정적 팩터리, 빌더 모두에 똑같이 응용할 수 있다 이 패턴의 변형으로 생성자에 자원 팩터리를 넘겨주는 방식이 있다 자바8에서 등장한 Supplier 인터페이스가 팩터리의 예이다. 의존성이 큰 프로젝트는 코드가 어지러워진다. 스프랑 같은 의존객체주입 프레임워크를 사용하여 문제를 해결..

Development Study/이펙티브 자바 2023. 4. 5. 09:22

[이펙티브 자바] 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

추가 정보

인기글

최신글

페이징

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

티스토리툴바