💋 오늘 공부한 내용 웹 요청과 응답에 어떤 내용이 있는지 자세히 뜯어보면서 공부했다. Spring MVC의 Method Arguments와 Return Values에 대해 공부했다. 💋 감정 회고 개발자는 공부를 즐겨야 한다지만, 나는 그닥 공부를 좋아하는 편은 아니다. 그렇다고 개발 공부를 끔찍하게 싫어하는 것은 아니지만 다른 누군가처럼 취미로 할 정도는 아니다. 세상에 개발 외에 재밌는게 너무 많은 것 같다. 오늘 아침부터 학과 친구에게 우테코에 관심이 있다며 연락이 왔다. 우리과 친구들이 데이터 사이언스, 인공지능 쪽으로 많이들 짱짱하게 가서, 원래는 백엔드에 관심이 많지는 않다. 하지만 요즘 백엔드에 관심 보이는 친구들이 조금씩 생긴건 혹시 나의 영향인가?!! 처음으로 데일리 회고를 써보기로 했..
분류 전체보기
지난 포스팅에서는 클라이언트의 요청을 메서드에 매핑하는 방법에 대해 학습했다. @RequestMapping 어노테이션을 통해서 메서드에 요청을 매핑할 것이라고 표현했고, 속성으로 URL, HTTP Method(GET, POST 등등), Request 파라미터, Header, Media Type과 같이 다양한 정보를 담아서 요청을 특정할 수 있었다. (지난 포스팅 참고!) 이번 포스팅에는 각 메서드에 매핑된 요청을 처리하는 방법에 대해서 공부할 것이다! 스프링 프레임워크에서는 @RequestMapping 어노테이션을 사용하여 작성된 핸들러 메서드가 파라미터와 반환값을 구성하는 방법을 다양하게 제공한다. 크게 두 가지에 처리를 할 수 있다. 메서드로 들어오는 파라미터 메서드로부터 나가는 반환값 이 두 가지에..
💋 요청과 응답 웹의 요청과 응답은 클라이언트와 서버 간의 통신을 위한 메시지이다. ✔ 요청 (Request) 요청 메세지는 클라이언트가 서버로 보내는 메세지이다. 먼저 예시를 보고, 구조에 대해서 파악해 보겠다! 요청의 Header이다. 요청의 Body이다. 요청 메세지는 세 가지 부분으로 이루어져 있다. HTTP 프로토콜의 요청 라인 요청 방식 (GET, POST, PUT, DELETE) URL Header 요청에 대한 부가적인 정보 Body (본문) POST, PUT 요청과 같이 요청과 함께 전달되는 데이터를 포함한다. 요청과 함께 전달되는 데이터가 없을 경우 Body가 없을 수도 있다. ✔ 응답 (Response) 응답 메세지는 서버가 클라이언트로 보내는 메세지이다. 이번에도 먼저 예시를 보고, ..
레벨1 마지막날에 인터뷰를 진행했다. 7명의 크루와 브리 코치가 한 팀이 되어 진행했고, 각각 돌아가면서 인터뷰어(질문하는 사람), 인터뷰이(질문을 받는 사람), 옵저버가 되었다. 나는 내가 작성한 레벨 로그를 바탕으로 질문을 받았다. 20분의 인터뷰를 마치고, 10분 간 인터뷰이를 제외한 다른 사람들이 피드백을 작성하고 발표하는 시간을 가졌다. 이번 회고를 통해 내가 받았던 피드백을 정리해보고, 레벨2 인터뷰를 위해서 9주 간의 레벨2 기간동안 어떤 방향으로 학습을 보완해야 하는지에 대해서 계획을 세워볼 수 있으면 좋을 것 같다. 💋 학습 측면에서 받았던 질문과 나의 대답 모든 질문들이 기억에 남지는 않으므로, 기억에 남았던 질문만 모아봤다. ✔ TDD Q. TDD를 사용하는 이유? 나의 대답) 처음 ..
💋 의존성 주입(DI)이란? 의존성 주입 = Dependency Injection = DI 먼저 '의존성'이 무엇인지부터 알아보자! ✔ 의존성(Dependency) 기업에서 사용하는 애플리케이션은 하나의 객체로 이루어져 있지 않다. 완전 간단한 애플리케이션이더라도, 몇 개의 객체가 서로 협력하고 있다. 객체가 협력한다는 것은 객체 간의 의존성이 존재한다는 것이다. 의존성이란 파라미터나 리턴값 또는 지역변수 등으로 다른 객체를 참조하는 것을 의미한다. 이렇게 하나의 객체는 다른 객체의 부품이 된다. 이 글에서 말할 의존성 주입은 Spring의 의존성 주입이다. Spring에서 관리해주는 객체를 Spring Bean이라고 하는데, 주로 Controller, Service, Repository를 스프링 컨테이..
[Spring] Spring Core(1): 스프링 빈(Spring Bean)의 개념, Component, Controller, Service, Repository의 역할에 대하여
💋 스프링 빈(Spring Bean)이란? Spring IoC 컨테이너가 관리하는 자바 객체 ✔ IoC(Inversion Of Control)이 뭘까? 제어의 역전이다. 우리가 사용하던 자바 프로그램에서는 프로그래머가 직접 객체를 생성하고, 원하는 클래스 내에서 다른 객체를 생성해 사용했다. 이 경우 프로그래머가 객체의 생명 주기를 관리하고 있다. 제어의 역전이 일어나면, 프로그래머가 아닌 다른 무언가가 관리를 위임하게 된다. 프로그래머의 제어 권한을 다른 주체에게 넘기는 것을 IoC(제어의 역전)라고 한다. Spring은 직접 자바 객체를 생성하고 관리하기 때문에 이 관리 위임 주체는 Spring이 된다. Spring이 생성하고 관리하는 자바 객체를 Bean이라고 한다. Spring Framework에..
💋 구현 순서를 지키자 클래스 내에서 순서가 있다. 상수, static 변수, 인스턴스 변수, 생성자, 메서드 순으로 작성한다. 메서드는 public 메서드 내에서 호출하는 private 메서드를 바로 아래에 적는 것이 더 읽기 편하다. (이 부분에 대해서는 사람들 의견이 다양하다.) 기능별로 모아서, 호출하는 순서대로 배치한다면 읽기 편할 것이다. getter와 equals 오버라이딩 같은 것은 맨 아래에 둔다. 나는 getter => equals, hashCode, toString 오버라이딩 메서드 순서로 놓는 것을 좋아하는데, getter를 맨 아래에 두어야 한다는 사람들도 좀 있다. 이런 부분은 그냥 우리팀 하는대로 해서 일관성만 유지하면 될 것 같다. public class Car { priva..
💋 Spring MVC란? Spring MVC는 스프링 프레임워크의 수많은 기술들 중 웹 기술에 관련된 것이다. 핵심기술 : 스프링 DI 컨테이너, AOP, 이벤트, 기타 웹기술 : 스프링 MVC, 스프링 WebFlux 데이터 접근 기술 : 트랜잭션, JDBC, ORM 지원, XML 지원 기술 통합 : 캐시, 이메일, 원격 접근, 스케줄링 테스트 : 스프링 기반 테스트 지원 스프링은 자바 언어를 사용해, 자바의 가장 큰 장점인 객체 지향이라는 특징을 잘 살려서 개발할 수 있도록 도와주는 프레임워크다. 웹에서 View와 Controller, Domain의 역할이 섞이게 되면 유지보수가 굉장히 힘들어진다는 문제점이 있었다. Business Logic(Controller, Domain)과 Presentatio..
이전에 진행했던 자동차 경주 미션에서 더 발전된 형태로, 이 미션을 웹으로 옮기는 미션을 진행했다. 순수 자바만을 사용한 콘솔 애플리케이션의 자동차 경주 미션: https://github.com/eunkeeee/java-racingcar GitHub - eunkeeee/java-racingcar: 자동차 경주 게임 미션 저장소 자동차 경주 게임 미션 저장소. Contribute to eunkeeee/java-racingcar development by creating an account on GitHub. github.com 그치만 사다리타기로 내 페어 베로의 코드를 사용해서 웹에 올리기로 했다. 스프링을 처음 접하게 되어 굉장히 혼란스러운 이틀이었다...! 처음으로 공식문서도 열심히 읽어보고, 지식을 ..
우테코 레벨1 막바지에 한달 생활기를 작성했었다. 그리고 백엔드 크루 뿐만 아니라 안드로이드, 프론트엔드 크루들과 함께 서로의 코드를 리뷰했다. 이 링크에 들어가면 내가 받은 리뷰를 볼 수 있다. 또 우리 팀 내에서 토너먼트로 올릴 글을 투표를 했다. 그중 1위를 해서 토너먼트에 올라갔다! (일종의 조별리그) 바로바로 그 글... 아래에는 원문이 있다! 인트로 다들 시간이 빠르게 지나갔다고 하지만, 나에게 시간은 나름 정속으로 갔다. 특히나 계속 기록하는 습관이 있다 보니, 매일 일기를 최고 네 줄씩 작성하는데, 한 달 전과 정말 많이 발전했다는 생각이 든다. 집에서 설렁설렁 개발 공부하던 때와는 달리 매일 일정한 시간에 공부하다 보니, 주변 환경이 왜 중요하다 하는지 알 수 있었다. 중요도 선정중.....