
등록/수정/조회 API를 만들자 본격저으로 등록, 수정, 삭제 기능을 만들어보자 등록 기능을 만들어보자 먼저 클래스들을 만들자 Controller : PostApiController DTO : PostsSaveRequestDto Service : PostsService //Controller package com.mesung.book.springboot.web; import com.mesung.book.springboot.service.posts.PostsService; import com.mesung.book.springboot.web.dto.PostsSaveRequestDto; import lombok.RequiredArgsConstructor; import org.springframework.web..
JPA로 데이터베이스를 다뤄보자 현재 운영을 진행하면서 MyBatis를 이용해 데이터베이스 쿼리를 작성한다. *즉, 실제 개발하는 시간보다 SQL을 다루는 시간이 더 많게 느껴진다는 것이다. * 해당 문제는 객체지향 프로그래밍의 걸림돌이 된다.. 객체 모델링 보다는 테이블 모델링에 집중하게 되고... 이를 해결하기 위해 즉, 관계형 데이터베이스를 이용해서 객체지향 프로그래밍을 할 수 있는 JPA(자바 표준 ORM)이 나타나게 된다. 참고 ibatis와 mybatis는 ORM이 아니고, SQL Mapper이다. ORM은 객체를 매핑하는 것이고, SQL Mapper는 쿼리를 매핑한다는 것에 차이가 있다. JPA란, 현대 웹 애플리케이션에서는 관계형 데이터베이스가 필수적이다. Oracle, MySQL, MSS..
Garbage Collection 가비지 컬렉션과 관계된 객체 참조 방식들 객체 참조 방식 Java 프로그램에서 하나의 객체는 다른 객체를 참조하고 다른 객체는 또 다른 객체를 참조하는 참조 사슬이 형성되는데, 이 참조 사슬 중 최초로 참조한 것을 Root Set이라고 한다. 힙 영역에 있는 객체들은 총 4가지 경로로 참조를 하게 된다. 힙 내의 다른 객체에 대한 참조(클래스 내에서 다른 클래스 인스턴스화) Java 스택 즉, Java 메소드 실행 시 해당 메소드의 지역변수와 파라미터들에 의한 참조 네이티브 메소드 스택(Java가 아닌 다른 언어로 작성된 코드)에 의해 생성된 객체에 대한 참조 메소드 영역의 정적 변수(static)에 의한 참조 2,3,4에 의해 참조한 것을 Root Set이라고 한다. ..
Java 박싱과 언박싱 상속과 합성의 차이 변수 명명법이 중요한 이유에 대해 설명과 예 개발시 중요하다 생각하는 요소 3가지 에자일 방법론에 대해서 oop 4가지 특징 Comparable, Comparator 차이 ArrayList와 LinkedList 차이 Hash, Hasing Collision 해결방법 기본형 변수와 참조형 변수가 뭐뭐 있나 Stack Overflow가 왜 일어나는지 메모리 누수가 무엇인가 메모리 누수를 막기 위해선 어떻게 해야하나 익명클래스와 익명객체에 대해 설명 쓰레드는 언제 쓰는가 람다식이란 무엇인가? JAVA에서 '==' 과 .Equals() 차이 인스턴스 변수, 전역 변수, 로컬 변수 자바의 데이터 타입인 reference Type에 대해서 설명하시오. 자바의 데이터 타입인..
Java Virtual Machine JVM이란 Java 애플리케이션을 클래스 로더를 통해 읽어 들여 Java API와 함께 실행하는 것을 말한다. JVM은 Java와 OS 사이에서 중개자 역할을 하며 Java가 OS에 구애받지 않고 재사용을 가능하게끔 해준다. JVM은 스택기반의 가상머신으로 메모리 관리와 Garbage Collection을 수행한다. 우리는 왜 JVM을 알아야 할까? 메모리는 한정되어 있고 우리는 이 한정된 메모리에 안에서 프로그램을 실행해야하니 메모리를 최대한 효율적으로 사용해야 하는 것이다. 메모리를 효율적으로 사용하기 위해서는 메모리 구조를 알고 메모리 관리가 어떤 식으로 되는 진행되는 지 파악하여 그 입맛에 맞게 개발을 해야한다. JAVA 프로그램의 실행 과정을 살펴보자 우리가..
스프링 부트와 테스트 코드 테스트 코드란, TDD와 단위 테스트는 서로 다른 이야기이다. TDD는 테스트가 주도하는 개발. 즉, 테스트 코드를 먼저 작성하는 것을 말한다. Red : 항상 실패하는 테스트를 먼저 작성 Green : 테스트가 통과하는 프로덕션 코드를 작성 Refactor : 테스트가 통과하면 프로덕션 코드를 리팩토링 단위 테스트는 TDD의 첫번째 단계인 기능 단위의 테스트 코드를 작성하는 것을 말한다. 단위 테스트는 테스트 코드를 꼭 먼저 작성해야하는 것도 아니고, 리팩토링도 포함되지 않는다. 즉, 순수하게 테스트 코드만 작성하는 것을 말한다. 단위 테스트 코드는 왜 작성하지? 장점을 살펴보자 개발단계 초기에 문제를 발견할 수 있다. 개발자가 나중에 코드를 리팩토링하거나 라이브러리 업그레이..
스프링 부트의 애노테이션 Main Application @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } @SpringBootApplication 스프링 부트의 자동 설정, 스프링 Bean 읽기와 생성이 모두 가능하다. 해당 애노테이션이 있는 부분부터 설정을 읽어가기 때문에, 해당 애노테이션이 있는 클래스는 항상 프로젝트의 최상단에 위치해야한다. SpringApplication.run() run()으로 인해 Spring Boot의 내장 WAS를 실행한다. 이를 통해서 톰캣을 설치할 필요가 없고, 스프링..
- Total
- Today
- Yesterday
- 이펙티브 자바
- package-private
- effectivejava
- 인프런
- 스프링부트
- junit
- @Lazy
- JPA
- try with resources
- 빌더 패턴
- 생성자
- springboot
- 팩토리 메소드 패턴
- 연관관계
- Spring
- mustache
- 점층적 생성 패턴
- Effective Java
- 자바8
- 복사 팩토리
- 빈 순환 참조
- 김영한
- java8
- try catch finally
- ifPresent
- flatMap
- java
- jdk버전
- 정적팩터리메서드
- 이펙티브자바
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |