Java & SpringBoot로 시작하는 웹 프로그래밍 : 자바 인강 8주차
처음 패스트캠퍼스에서 수업을 하는 자바 강의를 들었던 게 엊그제 같은데 벌써 마지막 주 차를 맞이하게 되었다.
1주차 때는 처음 느낌 그대로의 마음가짐으로 열심히 하려는 의욕이 앞섰지만 강의가 점차 진행될수록
그 의욕은 사그라들었다. 의욕이 앞선다고 더 수업을 잘 이해하는 것은 아니었다. 부족한 점을 채우면서 스스로
자습하면서 수업을 이해하는 과정이 필요했을 텐데 그러지 못했던 거 같아 못내 아쉽다.
하지만 지나간 건 지나간 것이다. 지금 마지막 주 차인 8주차에 접어드니 다시 1주차부터 수업을 복습하면
더 잘 이해하고 더 잘 코딩할 수 있을 거라는 자신감이 샘솟는다. 물론 특전을 받아야 재수강도 가능한 거 같지만
아직 어떻게 될지 모르겠다.
마지막 8주차 수업은 이 강의의 본질 핵심을 다루고있다.
Java가 많이 사용되고 있는 분야인 웹 쪽에서 SpringBoot 프레임워크를 입문하게 된다.
Spring이란 프레임워크 중 하나로써 웹 프레임워크를 담당하고있다.
스프링 프레임워크는 여러가지 특징이 있지만 그중 몇가지를 말하자면
관점 지향 프로그래밍이 있다. 보안이나 트랜잭션, 로깅 등 여러가지 모듈에서 공통적으로 사용을 하는 기능들을 따로 분리하고 관리를 할 수 있다. 여기서 말하는 분리하고 관리를 한다는 것은 추상클래스, 부모클래스나 인터페이스로 관리된다는 걸 말하는 게 아니라 모듈을 관리해주는 모듈들을 인터페이스 관계없이 따로 마련한다는 개념에 더 가깝다.
또한 스프링의 특징으로 의존성 주입이 있다.
의존성 주입이란 프로그래밍을 하는 데 있어서 구성요소 간의 의존적인 관계들이 소스코드 내부가 아니라 외부에서 설정을 통해 정의되는 방식을 말하는 것이다.
8주차에서는 스프링부트에 대한 강의뿐만이 아니라 정말 본격적인 웹개발에 대해서 배우게 된다
어떤 식으로 웹개발이 이루어지는 네트워크에 대해서도 배우게 된다.
그중 웹에서의 통신 형태를 말하는 HTTP Protocol은 빠질 수 없는 부분이다.
HTTP는 메시지를 Request하고 Response 하는 형태의 통신방법이다.
웹에서 사용자 즉 Client가 요청 메시지를 작성하고 요청메시지 전송 후 응답을 대기하면 서버는 그 정보를 받아
요청 대기 후 메시지를 수신하고 해석하게 된다. 이어서 애플리케이션 할당을 하고 결과를 생성 후 응답 메시지를 다시 송신한다.
이러한 HTTP는 Hyper Text Transfer Protocol의 약자로서 이름에 하이퍼텍스트 전송용 프로토콜로 정의되어있다.
하지만 실제로는 JSON(JavaScript Object Notation), XML, HTML, Video PDF, Image 등 다양한 컴퓨터에서 다룰 수 있는 것은 모두 전송 할 수 있다.
웹에서 데이터를 보내는 방식에는 GET 방식과 POST 방식이 있다.
먼저 GET은 클라이언트에서 서버로 어떤 자원의 정보를 리퀘스트 하기 위해서 사용되는 메소드이다.
어떤 게시판에 있는 게시물을 조회할 때 쓸 수 있다고 생각하면 된다. 이 GET을 통한 요청은 인터넷을 하면서 흔히 볼 수 있는 URL 주소 끝에 파라미터로 포함되어 전송된다. 즉 보안이 좋다고 할 수는 없다. 그리고 데이터의 제한이 있다.
URL의 파라미터로 붙는 방식은 URL 끝에 ?를 붙인 다음에 변수명1=값1&변수명2=값2 ....... 이런 식으로 붙여진다.
이렇게 붙여진 파라미터 값들이 서버에서는 값1과 변수명1로 값을 전달받을 수 있다.
POST는 클라이언트에서 서버한테 자원을 만들거나 변경하기 위해서 데이터를 전송할 때 사용하는 메소이드.
게시판에다가 글을 쓰는 동작을 할 때 사용된다고 볼 수 있다.
POST는 전송할 때 데이터를 HTTP메시지 body 쪽에 넣어서 서버로 보낸다. GET에서 사용했던 방식인 URL에 파라미터로 보냈던 값과 개체 쌍을 body에 담아서 보낸다고 보면된다. 또 POST는 GET과 달리 데이터 전송의 길이 제한이 없어서
용량이 많은 데이털르 보낼 때 사용되거나 GET처럼 데이터가 URL같은 외부에 드러나는 게 아니니 보안이 요구될 때 사용된다. POST는 브라우저 기록에 남지 않고 캐시되지 않는다는 장점이 있다.

네이버에서 날씨를 검색 했을 때 그 데이터값을 GET방식으로 요청한 건데 단순히 날씨를 검색하는 거라
어떤 보안적으로 문제 될 게 없기 때문에 GET으로 보내도 문제가 없다.