[인프런 워밍업 클럽 BE 0기] 발자국 1주차

[인프런 워밍업 클럽 BE 0기] 발자국 1주차

Day1 서버 개발을 위한 환경 설정 및 네트워크 기초

스프링 프로젝트를 시작하기 전에 서버, 네트워크, HTTP, API, JSON이 무엇인지 등 서버 개발에 필요한 다양한 개념을 이해했다.

HTTP Method로 @GET(데이터를 달라고 요청), @POST(데이터를 저장해라), @PUT(데이터를 수정), @DELETE(데이터를 삭제) 존재한다.

HTTP 요청은 HTTP Method와 Path가 핵심이고, HTTP응답은 상태코드가 핵심이다.

클라이언트와 서버는 HTTP를 주고 받으며 동작하는데 이 때 정해진 규칙을 API라고 한다.

 

  • 미션

    • https://www.inflearn.com/blogs/6565

    • 어노테이션이 '마법' 같은 일을 해주기 위해서는 리플랙션 이라는 기술이 사용된다.

    • 리플렉션은 라이브러리나 프레임워크를 개발할 때 간혹 사용되는 기술로, 코드를 직접적으로 호출하지 않고 코드를 제어하는 기술이다.

 

Day2 첫 HTTP API 개발

도서관리 Application 요구사항을 만들어 보면서 유저를 생성, 조회하는 시간을 가져보았다.

네트워크, IP, 도메인, 포트, HTTP요청과 응답구조, 클라이언트-서버 구조, API에 대해 알아보았고 Spring Boot를 이용하여 GET API와 POST API를 만들어 보았는데 서버를 재시작하면 유저 정보들이 날라가는 문제점이 있었다.

 

  • 미션

    • https://www.inflearn.com/blogs/6609

    • 가장 오래걸렸고 정말 머리가 터질 것 같은 미션이였다. 결국은 혼자 해결은 하지 못하였는데 그만큼 시간이 걸려서 API에 더욱 이해할 수 있는 시간을 갖을 수 있었다.

    • 꼭 다시 한 번 해봐야하는 미션인 부분이다.

 

Day3 기본적인 데이터베이스 사용법

디스크와 메모리의 차이를 이해하고 DB의 필요성에 대해 알아보았다. Spring Boot서버를 이용해 DB에 접근해서 데이터를 저장, 조회, 업데이트, 삭제 할 수 있었다.

DDL과 DML에 대해 알아보았고 실제로 DB에 적용해보았다.

 

  • 미션

    • https://www.inflearn.com/blogs/6639

    • 람다식에 대해 알아보는 미션이였는데 아직 람다식에 대해 이해가 부족하다는 생각이 든다.

    • Java에 적용시키기엔 더욱 많은 연습이 필요할 것 같다.

 

Day4 데이터베이스를 사용해 만드는 API

도서관 Application에서 유저 정보 업데이트와 삭제에 대해 알아보았다.

한 클래스인 Controller에서 너무 많은 역할을 하고있다는 문제점이 있었다. 또한 API의 예외상황을 알아보고 예외를 처리하였다.

 

  • 미션

    • https://www.inflearn.com/blogs/6677

    • 문제 1,2,3을 다 본 후 시작했어야하는데 1을 먼저 풀어서 3을 풀 때 DB부분에서 약간 꼬인 부분이 생겼다.

    • 시간이 나면 다시 풀어보는 시간을 가져야 할 것 같다.

    • 다른사람들의 풀이를 해석해보는 시간도 가져야겠다.

       

       

Day5 클린 코드의 개념과 첫 리팩토링

클린코드의 중요성과 원래 있던 Controller 코드를 보다 좋은 코드로 리팩트링하였다.

Controller에서 Service, Repository역할을 나누어 생성하여 유지, 보수가 더 좋은 코드로 만들었다.

Controller은 API의 진입지점으로서 HTTP Body를 객체로 변환하는 역할을 하고 Service는 현재 유저의 유무를 확인하고 예외처리를 하는 역할을 한다, Repository는 SQL을 사용하여 실제 DB와의 통신을 담당하는 역할을 한다.

 

  • 미션

    • https://www.inflearn.com/blogs/6716

    • 배열로 수를 받아서 반복문을 통해 풀었고 6면체 주사위를 12면체 주사위로 바꾸기 위해 2개의 숫자를 바꿔야했다.

    • 다른 풀이들을 보니 주사위의 면을 정하고 푸시는 분들도 계셔서 다시 생각해보는 시간을 가졌다.

 


1주차 후기

  • 아직 자바 문법이 부족하여 다른 사람들의 코드를 보면서 이해를 할 수 없을 때가 종종 있었다.

  • 람다식이 특히 부족한 부분이여서 더욱 공부해야한다.

  • 1주차 동안 정신없이 달려왔지만 완벽히 아는 것이 아니라서 내 것 으로 만들기 위해서 다시 복습을 해야할 것 같다.

     

     

댓글을 작성해보세요.

채널톡 아이콘