Home

effective java 3/E - 2장. 객체 생성과 파괴

2장 객체 생성과 파괴 2장에서 배울 내용 객체를 만들어야 할 때와 만들지 말아야 할 때를 구분하는 법 올바른 객체 생성 방법과 불필요한 생성을 피하는 방법 제때 파괴됨을 보장하고 파괴 전에 수행해야 할 정리 작업을 관리하는 요령 아이템 1 : 생성자 대신 정적 팩터리 메서드를 고려하라 클래스의 인스턴스를 얻는 전통적인 수단은 public 생성자이다. 하지만 생성자와 별도로 정적 팩터리 메서드(static factory method)를 제공할 수 있다. 정적 팩터리 메서드가 생성자보다 좋은 장점 다섯 가지 1. 이름을 가질 수 있다. 생성자에 넘기는 매개변수와 생성자 자체만...

Read more

effective java 3/E 학습 계획

effective java 3/E 이펙티브 자바 주간 계획 표 (2020.08.24~) 일주일에 한 장씩 진행 장 아이템 비고 1장. 들어가기     2장. 객체 생성과 파괴 아이템 1. 생성자 대신 정적 팩터리 메서드를 고려하라아이템 2. 생성자에 매개변수가 많다면 빌더를 고려하라아이템 3. private 생성자나 열거 타입으로 싱글턴임을 보증하라아이템 4. 인스턴스화를 막으려거든 private 생성자를 사용하라아이템 5. 자원을 직접 명시하지 말고 의존 객체 ...

Read more

자바와 JUnit 단위 테스트 - 1부

자바와 JUnit 단위테스트 - 1부 자바와 JUnit을 활용한 실용주의 단위 테스트 책을 보고 공부하며 정리한 내용입니다. 인텔리제이 테스트 설정 자바 프로젝트 생성 test 폴더 생성 후 폴더 지정 테스트할 클래스에서 오른쪽 -> Go To -> Test (Create New Test…) Junit4 -> Fix -> OK 테스트 코드 작성 후 테스트 테스트 코드 생성 단축키 ⇧ + ⌘ + T 단위 테스트 모듈이나 애플리케이션 안에 있는 개별적인 코드 단위가 예상대로...

Read more

스프링 프레임워크 핵심 기술 - 스프링 AOP, Null-Safety, 마무리

스프링 프레임워크 - 스프링 AOP, Null-Safety, 마무리 지난 강의 정리 ApplicationContext는 단순히 BeanFactory의 기능만 하는 것이 아니고 ResourceLoader, ApplicationEventPublisher,MessageSource, Environment 등 여러 기능들이 있습니다. 스프링 AOP 스프링 AOP - 개념 소개 Aspect-oriented Programming (AOP)은 OOP를 보완하는 수단으로 흩어진 Aspect를 모듈화 할 수 있는 프로그래밍 기법입니다. 흩어진 관심사(Crosscutting Concerns) Concerns은 여러...

Read more

스프링 프레임워크 핵심 기술 - Resource, Validation, 데이터 바인딩, SpEL

스프링 프레임워크 Resource, Validation, 데이터 바인딩, SpEL 지난 강의 정리 ApplicationContext는 단순히 BeanFactory의 기능만 하는 것이 아니고 ResourceLoader, ApplicationEventPublisher,MessageSource, Environment 등 여러 기능들이 있습니다. Resource 추상화 특징 java.net.URL을 추상화 한 것 스프링 내부에서 많이 사용하는 인터페이스 추상화 한 이유 클래스패스 기준으로 리소스 읽어오는 기능 부재 ServletContext를 기준으로 상대 경로로 읽어오는 기능 부재 새...

Read more

스프링 프레임워크 핵심 기술 - IoC 컨테이너

스프링 프레임워크 소규모 애플리케이션 또는 기업용 애플리케이션을 자바로 개발하는데 있어 유용하고 편리한 기능을 제공하는 프레임워크입니다. 스프링의 역사 2003년 등장 Java EE 스펙 구현 모음체 + 알파 최근까지 주로 서블릿 기반 어플리케이션 만들 때 사용해 옴. 스프링 5부터는 WebFlux 지원으로 서블릿 기반이 아닌 서버 어플리케이션도 개발 가능 디자인 철학 모든 선택은 개발자의 몫(스프링이 특정 영속화 기술을 강요하지 않음) 다양한 관점을 지향합니다. 하위 호환성을 지킵니다. API를 신중하게 설계합니다. 높은 수준의 코드를 지향합니다. Ioc 컨테이너 ...

Read more

정렬 알고리즘

Bubble Sort(거품 정렬) 버블 정렬 개요 거품 정렬은 배열의 모든 원소에 대해 첫 번째 원소부터 인접한 원소를 검사하여 정렬하는 방법입니다. 선택된 원소와 인접한 다음 원소를 비교하여 값이 크다면 위치를 교환합니다. 모든 원소를 다음 원소들과 비교를 해가며 정렬을 하기 때문에 시간복잡도는 평균 O(n2) 입니다. BubbleSort java 코드 import java.util.Arrays; public class BubbleSort { public void sort(int[] array) { for (int i = 0; i < array.length; i++) { for (...

Read more

Vue axios + Spring boot 이미지 업로드 하기

Vue axios + Spring boot 이미지 업로드 하기 웹 페이지에서 이미지 또는 파일 업로드가 필요한 기능들이 많이 있습니다. 이미지 업로드에는 다양한 방법이 있으나 vue에서 axios를 사용하여 spring boot의 rest api를 사용하여 서버에 이미지를 업로드를 해보겠습니다. Vue 코드 ImageUpload.vue <template> <div> <input type="file" accept="image/*" multiple @change="handleChange" /> <button @click="uploadFiles">파일업로드&...

Read more