[인프런 워밍업 클럽 3기] Spring Boot with Kotlin 발자국 1주차
처음 들을 땐 백 엔드 지식이 없어서 인지 이해하지 못 했던 이론 부분을 다시 들으며 글을 작성하기로 했다. 클라이언트 / 서버: 요청을 하는 측 / 요청을 받는 측 데이터베이스: 일종의 서버지만 특수하기 때문에 따로 부른다. DBMS를 칭하기도 함 DNS 서버(통신사들): 도메인 주소에 매핑 된 IP 주소를 들고 있음 -> 이때 받은 IP 주소로 요청을 하는 것 프레임워크 VS 라이브러리: 프레임워크는 키트에 가깝다 => 키트 제작자가 정해둔 큰 틀이 있고, 사용자는 주어진 것들을 활용- 의자 키트라면 의자를 꾸밀 순 있지만, 책상을 만들 수는 없다: 라이브러리는 도구 상자에 가깝다 => 사용자가 주도권을 가지고 사용 Spring은 Web 프레임워크 이다. MVC(Model-View-Controller)View : 사용자에게 보여지는 화면Controller : 사용자의 요청을 받아 작업을 수행하는 부분Model : 데이터를 담아 View에 주고, Controller로부터 받는다. 레이어드 아키텍쳐(Controller-Service-Repository): 처리의 과정을 구조화Controller(Presentation) : 요청을 받을 수 있는 인터페이스 정의, 검증 및 메소드(Service) 호출Service(Business) : 데이터 처리, Repository의 DB 처리 메소드를 호출하여 저장, 수정, 조회, 삭제Repository(Data Access) : DB에 접근하여 작업 요청, DB 처리 방법 제공 / 여러 서비스가 공통 사용 스프링 Bean: 스프링이 관리하는 인스턴스를 의미.@Controller, @Service, @Repository (클래스) 등 직접 인스턴스 생성과 관리를 하지 않고, Spring이 주체가 되어 관리한다.의존성 주입: 외부로부터 한 객체가 사용하는 다른 객체를 객체 내부가 아닌 외부에서 주입 받는 것을 의미하고, 의존성을 주입하는 방법은 생성자(권장), 수정자, 필드 방식으로 3가지가 있다. (@Autowired) Http 와 REST API HTTP 요청 : Start Line, Header, BodyGET : Read 작업 요청POST : CreatePUT : UpdatePATCH : UpdateDELETE : Delete HTTP 상태 코드 : 200, 300, 400, 500 REST API : HTTP 통신으로 동작하는 어플리케이션 기능을 정의하는 규칙URL, HTTP 메서드(CRUD), HATEOAS한계 : 모든 기능을 준수하며 개발하기 어렵다. JPA: 자바 ORM 기술의 표준 인터페이스 ORM: 인스턴스와 DB를 매핑해주는 기술DBMS에 대한 의존성 저하, 학습 필요 IntelliJ로 Git에 Commit&Push 하는 방법 https://start.spring.io/http://localhost:8080/https://www.toptal.com/developers/gitignore/ 일주일 간 학습하면서 새삼 백엔드를 거의 처음 한다는 것을 알게 되어, 이렇게나 모르는게 많았다는 생각이 들었습니다.매일매일에 대한 커리큘럼이 짜여져 있는데, 이를 지키지 못하고 어느날은 더 많이, 어느 날은 더 적게 들은게 아쉬웠습니다. 잘 모르겠는 점도 많아서 다음 강의가 먼저 듣고 싶어지는 날도 있었던 건 뿌듯했습니다. 다음주에는 더 적게 들은 날이 있더라도 매일매일 조금은 강의를 들었으면 좋겠다고 생각합니다. +) 03.11 미션에 관한 내용 추가첫 미션은 강의에서 진행했던 내용대로 진행하며 기본 설정을 완료했다. 두 번째 미션은 관계도에 대해 배울때마다 까먹는데, 이번에는 까먹지 않고 기억해두려고 한다...학생의 수강과목에 전체 과목과의 관계를 붙여보려고 했는데 수강과목과 전체 과목의 관계가 아직 헷갈려서 보류하고, 대신 학생이 속한 과에 대한 테이블을 추가했다.