inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[인프런 워밍업 클럽 스터디 1기] 첫번째 발자국

lar
0

1. 1주차 학습한 강의 내용

 

1일차(1강~5강)

1. 새로운 프로젝트 시작하기

Spring Initializr 사용하기

2. @SpringBootApplication과 서버

@SpringBootApplication

package com.group.libraryapp;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class LibraryAppApplication {

  public static void main(String[] args) {
    SpringApplication.run(LibraryAppApplication.class, args);
  }
}

서버(Server)란?

3. 네트워크란 무엇인가?

4. HTTP와 API란 무엇인가?

HTTP란?

예) 운송장 표준 - 요청하는 행위, 받는 사람, 항목(자원), 세부조건

HTTP 요청

GET 요청

GET /portion?color=red&count=2
Host: spring.com:3000
//의미 - 내놓아라 파란집 둘째, 포션 빨간색 2개

POST 요청

POST/oak/leather
Host: spring.com:3000

오크가죽정보
//창고에 넣어라 빨간집, 오크가죽

데이터를 보내는 2가지의 방법

다양한 HTTP Method

API(Application Programming Inteface)란?

HTTP 응답

💡 요청에 대한 응답을 제공한 컴퓨터는 서버(Server)를 의미한다.

💡요청한 컴퓨터는 클라이언트(Client)를 의미한다.

상대 코드

상대 코드의 종류

5. GET API 개발하고 테스트 하기

덧셈 API

GET API 개발 데이터의 흐름

 

2일차(6강~9강)

1. POST API 개발 및 테스트하기

POST API에서 데이터 받을 경우

JSON이란?

JSON 문법

{
 "name":"김철수",
 "age":50
}

곱셈 API

POST API 개발 데이터 흐름

2. 유저 생성 API 개발 및 테스트하기

도서 관리 애플리케이션의 요구사항

도서관 사용자 등록하기

유저 생성 API 조건

JSON
{
  "name": String (null 불가능),
  "age":Integer
}

유저 생성 API 개발 데이터 흐름

3. 유저 조회 API 개발 및 테스트하기

유저 조회 API 조건

JSON
{
  "name": String (null 불가능),
  "age":Integer
}

유저 조회 API 개발 데이터 흐름

 

3일차(10강~13강)

1. 컴퓨터의 핵심 부품 이해하기

서버 유저 정보가 왜 남아있지 않는지 이해하기 위해 알아보자.

2. Database와 MYSQL

Database란?

3. MySQL에서 Table 생성하기

데이터베이스 생성

create database [데이터베이스 이름];

데이터베이스 목록 확인

show databases;

데이터베이스 삭제

drop database [데이터베이스 이름];

데이터베이스 안으로 들어가기

use [데이터베이스 이름];

테이블 목록 확인

show tables;

테이블 생성

create table [테이블 이름] (
[필드1 이름] [타입] [부가조건],
[필드1 이름] [타입] [부가조건],
...
primary key([필드 이름])
);

테이블 생성 예시

create table fruit
(
    id           bigint auto_increment,
    name         varchar(20),
    price        int,
    stocked_date date,
    primary key (id)
);

테이블 삭제

drop table [테이블 이름];

=> 해당 SQL를 DDL(Data Definition Language)이라고 정의한다.

MYSQL 타입의 종류

4. Table 데이터 조작하기

생성, 조회, 수정, 삭제 방법(CRUD)

데이터 삽입

insert into [테이블 이름](필드1 이름, 필드2 이름) values (값1, 값2, ...)

데이터 삽입 예시

insert into fruit (name, price, stocked_date) values ('사과', 1000, '2023-01-01');

데이터 조회

select * from [테이블 이름];
select * from [테이블 이름] where [조건];

데이터 조회 예시

select name, price from fruit;

select *
from fruit where name = '사과' and price <= 2000;

데이터 수정

update [테이블 이름] set 필드1이름=값, 필드2이름=값, ... where [조건];

데이터 수정 예시

update fruit set price = 1500 where name = '사과';

데이터 삭제

delete from [테이블 이름] where [조건];

데이터 삭제 예시

delete
from fruit
where name = '사과';

=> 해당 SQL를 DML(Data Manipulation Language)이라고 정의한다.

5. Spring에서 Database 사용하기

Database 설정 파일 추가

spring:
  datasource:
    url: "jdbc:mysql://localhost/library"
    username: "root"
    password: ""
    driver-class-name: com.mysql.cj.jdbc.Driver

 

4일차(14강~16강)

1. 사용자 수정 API, 삭제 API 개발 및 테스트하기

사용자 수정 API 조건

{
  "id": Long,
  "name": String
}

사용자 삭제 API 조건

사용자 수정 및 삭제 API 개발

사용자 수정 API, 삭제 API 예외처리 하기

사용자 수정/삭제 API 예외처리 개발

사용자가 존재하지 않을 경우

 

5일차(17강~18강)

1. 좋은 코드(Clean Code)가 왜 중요한가?

Clean Code

2. Controller, Service, Repository 분리하기

Controller의 함수 1개가 하고 있던 역할

역할 분리 구조


2. 미션

첫 번째 과제(1일차)

두 번째 과제(2일차)

세 번째 과제(3일차)


3. 회고

백엔드 발자국 회고 워밍업 1주차

답변 0