본문 바로가기

Java Spring8

[SpringBoot3] Blog 기획하고 API 만들어보기 1. REST API - URL 설계 방식이다. - 동사를 쓰지 말고 자원을 표시해야 한다. - 동사는 HTTP 메서드로 한다. - Node/Express 하면서 지겹게 배웠던 내용이므로 나머지 생략 2. 엔티티 구성 컬럼명 자료형 null 허용 키 설명 id BIGINT N 기본키 일련번호, 기본키 title VARCHAR(255) N 게시물의 제목 content VARCHAR(255) N 내용 3. 단계별 작업 1) Domain의 Article class - Article class를 만든다 - Article.java - @Builder : 롬복에서 지원하는 애너테이션, 빌더 패턴 방식으로 객체를 생성할 수 있도록 한다. - 빌더패턴을 사용하지 않으면 new Article("abc","def") 이렇.. 2023. 10. 21.
[SpringBoot3] 데이터베이스 1. DBMS - 관리 시스템이다. - 이미 MySQL을 사용한 적이 있으므로 2. H2, MySQL - H2는 자바로 작성되어 있는 RDBMS이다. 스프링 부트가 지원하는 인메모리 관계형 DB이다. - H2는 데이터를 다른 공간에 따로 보관하는 것이 아니라 앱 자체 내부에 데이터를 저장하는 특징이 있다. - H2는 실제 서비스에서는 사용하지 않고, 개발 시 테스트용도로 많이 사용한다. - 실제 서비스로 올릴 때는 MySQL을 사용한다 3. ORM - Sequelize같은 거다. 자바에서는 JPA를 표준으로 사용한다. JPA는 ORM 인터페이스다.(자바 객체와 DB를 연결한다.) - 실제 사용을 위해서는 구현을 위해 ORM 프레임워크를 추가로 선택해야 한다. 여기서는 Hibernate를 사용한다. 4. .. 2023. 10. 20.
[SpringBoot3] 테스트코드 1. 테스트 코드 - 꼼꼼히 잘 작성해야 좋은 프로그래밍이다. 당연하다. - JS진영의 JEST기반의 유테/통테를 사용해봤으니, 금방 익혔으면 좋겠다. 2. SpringBoot의 테스트코드 - test 디렉터리에서 작업한다. - 다양한 패턴이 있으나, 여기에서는 given-when-then 패턴을 사용한다. - given : 테스트 실행을 준비하는 단계 - when : 테스트를 진행하는 단계 - then : 테스트 결과를 검증하는 단계 3. SpringBoot의 테스트도구 - spring-boot-starter-test 스타터에 테스트를 위한 도구가 모여있다. - 주로 JUnit과 AssertJ를 가장 많이 사용한다. 4. JUnit 사용 배우기 - JUnit : 단위테스트에 사용한다. 테스트 방식을 구.. 2023. 10. 20.
[SpringBoot3] SpringBoot3 구조 살펴보기 1. 구조 살펴보기 - 각 계층이 통신하는 구조를 따른다. - 각 계층이 소통할 수는 있지만 직접 간섭하거나 영향을 미치지는 않는다. 2. 각 계층구조 1) Presentation 계층 - HTTP 요청을 받고 비즈니스계층으로 전송하는 역할. - 컨트롤러가 역할을 한다. 2) Business 계층 - 모든 비즈니스로직을 처리한다. - 프로세스를 구축하는 계층이다. 3) Persistence 계층 - 모든 DB 관련 로직을 처리한다. - 이 과정에서 DB에 접근하는 DAO 객체를 사용할 수도 있다. - DAO는 DB계층과 상호작용하기 위한 객체이다. - Repository가 퍼시스턴스 계층의 역할을 한다. 3. SpringBoot의 디렉터리 구조 살펴보기 - main : 실제 코드를 작성하는 공간. - t.. 2023. 10. 20.
[SpringBoot3] SpringBoot3와 자바버전 1. 스프링부트3 은 자바17을 사용해야한다. - 2025년부터는 무조건 써야한다고 하니 그냥 맞춰서 사용하자. - 자바진영 공부는 처음이라 ES6 대규모 변화같은 그런건가보다. - 주요 변화를 살펴보자. 1) 텍스트블록 - \n 대신에 """로 감싼 텍스트를 사용해서 여러줄의 텍스트를 표현할 수 있다. 2) formatted() 메서드 - 값 파싱을 위한 메서드가 추가되었다. 3) 레코드 - 데이터 전달을 목적으로 하는 객체를 더 빠르고 간편하게 만들기 위한 기능이다. - 레코드는 상속이 불가하고, 파라미터에 정의한 필드는 private final로 정의된다. - 게터를 자동으로 만들기 때문에 에너테이션이나 메서드로 게터 정의를 하지 않아도 된다. 4) 패턴매칭 - instanceof 키워드를 좀 더 .. 2023. 10. 20.
[SpringBoot3] Node&Express개발자의 SpringBoot 조온나쉽게 시작하기 1. 스프링의 등장 - 엔터프라이즈 애플리케이션을 위한 개발환경을 제공해서 기능 개발에만 집중할 수 있는 프레임워크 - Spring 자체는 장점이 많지만 설정이 매우 복잡하다. 따라서 이러한 단점을 보완하고자 출시된 것이 Spring Boot이다. - SpringBoot는 빠르게 프로젝트를 설정할 수 있고, 의존성 세트라고 불리는 스타터를 활용해 간편하게 관리할 수 있다. - SpringBoot는 톰캣, 제티, 언더토우같은 WAS가 내장되어있어서 독립실행이 가능하다. - SpringBoot는 빌드 구성을 단순화하는 스프링부트 스타터를 제공한다. - SpringBoot는 XML설정이 필요없고, JAR을 이용해서 자바옵션만으로도 배포가 가능하다. 2. Spring Concept - 스프링의 중요 컨셉인 Io.. 2023. 10. 20.
[SpringBoot3] Java Spring 서버개발자가 알아두면 좋은 상식 1. 서버와 클라이언트 - 클라이언트 : 사용자측 App, 서버로 요청하는 프로그램 전체를 일컬어 말한다. - 서버 : 클라이언트의 요청을 받아 처리하는 주체이다. 2. DB - 데이터베이스, 데이터 저장소이다. - MySQL, MongoDB, 등은 DB 관리 시스템이다. DBMS(DataBase Management System) 이라고 한다. - RDB : 관계형 DB로, SQL류이다. 3. IP 와 Port - IP : 서로를 식별하고 통신하기 위한 주소 - 포트는 운용되는 서비스 구분을 위한 주소 - IP가 백화점이라면 포트는 각각의 매장이다. - Spring Boot는 8080 포트를 기본으로 사용한다. 4. 백엔드 개발자의 임무 - 과제할당 - 과제분석 - 개발 - 테스트 - QA - 배포 - .. 2023. 10. 20.
[SpringBoot3] 입문 1. IntelliJ 세팅 - 나는 React, SCSS, Vue 등 프런트 코드도 IntelliJ로 사용할 것이므로 Ultimate를 구매했다. - 장점 ? 엄청나진 않다. 그냥 잡기능 쓸 수 있다. - 플러그인 세팅은 필수다. 보기에도 좋은 코드가 먹기에도(?) 좋으므로 이쁜 플러그인 많이 깔아주자. 2. 프로젝트 생성 - JDK는 17버전, 빌드툴은 Gradle을 사용한다. - build.gradle 파일을 수정한다. - 우측 Gradle 옵션에서 새로고침을 눌러 패키지를 설치한다. - 디렉터리를 세팅한다. SpringbootDeveloperApplication.java 는 main 클래스가 있는 곳이다. - SpringbootDeveloperApplication.java - Run을 해보면 3. .. 2023. 10. 20.