본문 바로가기

오늘의 공부 & 기록

스프링부트 강의 기록 개발한 기능을 실행해보기 위한 방법 1) main메서드를 통해서 실행 2) 웹 애플리케이션의 컨트롤러를 이용해 실행 위 두가지 방법은 준비하고 실행하는데 오래걸리고, 반복 실행이 어려우며 여러 실행 테스트를 한번에 실행하기 어렵다는 단점이 존재함 그렇기 때문에 JUnit이라는 프레임워크로 테스트를 실행하여 위 문제점을 해결 테스트 코드 테스트 코드는 순서를 보장하지 않음 -> 테스트 코드 작성은 어떤 순서로 수행되도 상관 없게 작동하도록 작성해야함 한 테스트가 끝나면 메모리나 디비에 데이터가 삭제되도록 해야함 테스트 코드 메서드명?은 한글로 작성해도 됨 의존성 주입 @Autowired로 자동 의존 관계 설정해줌 의존성주입 3가지 1) 필드 주입 2) setter 주입 3) 생성자 주입(권장) 스프링 빈 .. 더보기
스프링 강의와 HashMap, 스트림 복습 자바의 정석 1회독을 끝내고 스프링도 다시 기본부터 잡기위해 들었던 강의를 다시 듣기 시작했다. 코딩 테스트와 스프링 강의 들으면서 자바의 정석 발췌독 하는 방법으로 공부할 예정! - 스프링 강의 리포지토리를 직접 구현하는 부분 - 자바 복습하기 좋을 것 같아서 정리 private static Map store = new HashMap(); @Override public Optional findByName(String name) { return store.values().stream() .filter(member -> member.getName().equals(name)) .findAny(); } 1. Map인터페이스 - 키(key)와 값(value)을 하나의 쌍으로 묶어서 저장하는 컬렉션 클래스를 구현.. 더보기
스프링 강의 메모 Gradle은 의존관계가 있는 라이브러리를 함께 다운로드 해줌 스프링부트 라이브러리 spring-boot-starter-web - spring-boot-starter-tomcat:톰캣(웹서버) -spring-webmvc: 스프링 웹 MVC spring-boot-starter(공통): 스프링 부트 + 스프링 코어 + 로깅 spring-boot -spring-core spring-boot-starter-logging -logback, slf4j 로그 관련 logback, log4j 검색해보기 테스트라이브러리 spring-boot-starter-test jnuit: 테스트 프레임워크 mockito: 목 라이브러리 assertj: 테스트 코드를 좀 더 편하게 작성하게 돕는 라이브러리 spring-test 스프링.. 더보기
H2 DB와 인텔리제이(IntelliJ) 연동으로 더 간편하게 DB사용하기 1. h2 데이터 베이스 - 컴퓨터에 내장된 램(RAM) 메모리에 의존하는 데이터베이스 - 램에 의존하기 때문에 서버 재가동 시 기존의 데이터가 사라짐, 그래서 초기 개발 단계에서 사용하기 좋고, 실습이나 예제 연습 때 간편하게 이용할 수 있다는 장점이 있음 2. h2 데이터 베이스의 3가지 모드(mode) 1) Embeded mode: JVM 위에서 실행됨, H2 DB데이터를 로컬에 저장하고 사용, 외부 접근 불가(콘솔로 접근), 설정 간편 2) Local mode: JVM 위에서 실행, H2 DB데이터를 로컬에 저장하지 않고 메모리에만 생성, 인메모리, 외부 접근 불가(콘솔로 접근), 설정 간편 3) Server mode: 영속 사용, 외부 접근 가능, 추가 설정 필요 3. H2 데이터베이스와 인텔리.. 더보기
RuntimeException 런타임 예외 종류 java.lang.객체 java.lang.Throwable java.lang.예외 java.lang.RuntimeException AnnotationTypeMismatchException ArithmeticException ArrayStoreException BufferOverflowException BufferUnderflowException CannotRedoException CannotUndoException CatalogException ClassCastException ClassNotPreparedException CMMException CompletionException ConcurrentModificationException DateTimeException DOMException Duplic.. 더보기
빌더패턴(Builder Pattern)과 @Builder https://pamyferret.tistory.com/67 빌더 패턴(Builder pattern)을 써야하는 이유, @Builder 빌더 패턴(Builder pattern)이란? 객체를 정의하고 그 객체를 생성할 때 보통 생성자를 통해 생성하는 것을 생각한다. Bag bag = new Bag("name", 1000, "memo"); 하지만 생성자를 통해 객체를 생성하는데 몇 가 pamyferret.tistory.com https://mangkyu.tistory.com/163 [Java] 빌더 패턴(Builder Pattern)을 사용해야 하는 이유 객체를 생성하기 위해서는 생성자 패턴, 정적 메소드 패턴, 수정자 패턴, 빌더 패턴 등을 사용할 수 있습니다. 개인적으로 객체를 생성할 때에는 반드시 빌더.. 더보기
📝 쿠키와 세션 클라이언트와 서버 간의 HTTP 요청에서는 사용자에 대한 정보를 저장하지 않습니다(Stateless). 쿠키와 세션 모두 HTTP에 상태 정보를 유지하기 위해 사용됩니다. 쿠키 클라이언트에 저장 쿠키 저장 시 만료일시 설정 가능 클라이언트에서 쿠키 정보를 쉽게 변경, 삭제 가능하여 보안에 취약한 편 세션 웹 서버에 저장 서버에서 일정시간 동안 클라이언트 상태를 유지하기 위해 사용 클라이언트가 요청시 서버는 세션 ID를 생성하여 전달하고 클라이언트는 이를 받아 세션쿠키로 저장 더보기
프로그래밍 케이스 스타일(Case Styles) 카멜/케밥/파스칼/스네이크 프로젝트 시작할 때 코드 컨벤션을 정하면서 여러가지 코딩 스타일이 있다는 것을 배웠다. 변수나 클래스 이름을 만들 때, 두개 이상의 단어를 조합하게 되는 경우 스타일에 따른 작성 방법이 있어서 대표적인 표기법 4가지를 정리해보려고 한다. 1. 카멜 케이스(camelCase) 낙타의 등에 있는 혹과 같은 모양이라 카멜 케이스로 불린다. 첫 단어는 소문자로 시작하고, 두번째 단어 시작은 대문자로 작성한다. 원문: Java Programming 카멜 케이스: javaProgramming 2. 케밥 케이스(Kebab-case) 케밥이 꼬챙이에 꽂힌 모습과 같은 모양이라 케밥 케이스로 불린다. 모든 단어는 소문자로 시작하고 단어와 단어 사이는 "-"(하이픈)으로 연결한다. 원문: Java Programming 케.. 더보기