본문 바로가기

개발 일지

[TIL]이노베이션 캠프 14일차

 

 

Spring 입문 주차 8.12(금) ~ 8.18(목)

1. 개인 과제: 게시판 CRUD 기능을 하는 백엔드 서버 만들기, AWS 배포
2. 팀 과제: Spring 핵심 키워드 정리(필수 4개, 선택 4개)

 

진행 계획

- 12일(금) Spring 핵심 키워드 정리

- 13일(토) Spring 핵심 키워드 정리

- 14일(일) 개인과제에 필요한 강의 수강 및 공부

- 15일(월) API 명세서 작성, Use Case 그리기

- 16일(화) 게시판 CRUD 기능 코드 작성

- 17일(수) 게시판 CRUD 기능 코드 작성

- 18일(목) 게시판 CRUD 기능 코드 작성 및 AWS 배포

 

 

1. 복습

1) 스프링의 구조 3영역

- Controller: 가장 바깥 부분, 요청/응답을 처리

- Service: 중간 부분, 실제 중요한 작동이 많이 일어나는 부분 / 업데이트(갱신, 수정)에 필요

- Repository: 가장 안쪽 부분, DB와 맞닿아 있음(Repository, Entity) / 데이터를 생성, 삭제, 조회

 

2)Dto

RequestDto: 요청 시 필요한 정보를 옮기는 것을 도움

ResponsetDto: 응답 시 필요한 정보를 옮기는 것을 도움

 

3) Front-End 기본

- HTML: 뼈대

- CSS: 꾸미기

- Javascript: 동적 기능

 

2. 새로 배운 것

1) RDBMS(Relational DataBase Management System): 컴퓨터에 정보를 저장하고 관리하는 기술

  • RDBMS의 종류: MySQL, PostgreSQL, Oracle Database
  • 강의에서 사용할 RDBMS
    • H2: In-memory DB의 대표 주자로 인메모리 DB란 서버가 작동하는 동안에만 내용을 저장하고, 서버가 작동을 멈추면 데이터가 모두 삭제되는 데이터베이스
    • MySQL: 우리가 서비스를 배포할 때 사용할 데이터베이스로 (AWS RDS 라는 서비스를 사용해 붙여볼 예정). 스프링과 궁합이 좋아서 많은 회사에서 사용
  • SQL(Structured Query Language): 생성, 삽입, 조회 등 명령문
  • SQL 연습하기
// 테이블 courses 생성
CREATE TABLE IF NOT EXISTS courses (
    id bigint NOT NULL AUTO_INCREMENT, 
    title varchar(255) NOT NULL,
    tutor varchar(255) NOT NULL,
    PRIMARY KEY (id)
);

// 데이터 삽입
INSERT INTO courses (title, tutor) VALUES
    ('웹개발의 봄, Spring', '남병관'), ('웹개발 종합반', '이범규');
    
// 데이터 조회
SELECT * FROM tutors;

 

 

2) JPA: SQL을 쓰지 않고 자바로 데이터베이스 데이터를 생성, 조회, 수정, 삭제할 수 있도록 해주는 번역기(자바로 코드작성하다가 SQL도 써야하는 불편함을 해소할 수 있음)

 

  • 사용 방법: 스프링 프로젝트에 의존성 추가
// 스프링 프로젝트 build.gradle에 JPA 의존성 추가
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'

 

 

  • JPA의 Domain == MySQL의 테이블 / JPA의 Repository == MySQL의 SQL

JPA와 SQL

 

3. 오늘 한 일 / 회고

- 스프링 강의 수강 및 복습 

- AWS 관련 강의 수강

 

4. TO-DO LIST

- 개인 과제: 게시판 CRUD 구현 시작