brunch

You can make anything
by writing

C.S.Lewis

by 힐데와소피 Aug 02. 2022

기본은 내가 챙겨

[자바인강 7주차] 책과 유튜브로 배우는 웹프로그래밍

스프링부트 강의를 듣기 시작한 이후부터 집중력이 급격히 하락했다. 자바 언어를 배우기는 것도 아직 미숙한데, 웹에 대한 기본적인 이해 없이 자바로 웹 구조를 만드는 수업을 들었으니 말이다. 어찌어찌 어떤 내용이 나오는지 표기하며 하고 있으나 근원에 대한 궁금증이 자꾸 들었다. 그럴 때는 책이 제일이지 않겠는가. 우연히 얼마전에 도서관에 갔다가 발견한 <1일 1로그 100일 완성 IT지식>을 구입해서 꺼내 들었다.


https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=285545402


책의 원제는 <Understanding the Digital World>인데, 원제가 훨씬 책의 내용을 잘 담고 있는 것 같다. (물론 이 두꺼운 책을 하루에 한 개씩 읽는 마음으로 사서 읽으셔라 하는 출판사의 기획도 이해가 갔다.) 책은 컴퓨터의 하드웨어부터 소프트웨어, 통신과 데이터 영역까지 다룬다. 컴퓨터는 어떤 구조로 만들어지는지, 프로그래밍 언어는 어떤 것이 있는지, 인터넷은 무엇인지와 같은 내용을 입문자 수준에서 설명해준다. 덕분에 자바를 배우는 처음부터 들었던 막연한 배경지식이 좀 채워지는 느낌이었다. 컴퓨터와 프로그래밍 발달의 역사를 아는 것만으로 내가 배우는 공부의 방향지점을 대략적으로나마 체감했달까.




프로그래밍이 사람과 컴퓨터의 '1:1' 관계에서 진행되는 것이라면, 인터넷을 위한 프로그래밍은 내 컴퓨터와 다른 사람들의 컴퓨터라는 '1:네트워크' 관계를 고민한다. 서로 정보를 원활하게 주고받기 위해서는 일종의 규칙이 필요하며, 이를 보통 IP(인터넷 프로토콜, Internet Protocol)라고 한다. IP 정보는 패킷(packet)으로 전송된다. 패킷에는 발신자 주소, 수신자 주소, 내용, 여러 기타 정보의 묶음이라 할 수 있다. (물론 스프링부트에서 이런 패킷의 구조까지 일일이 만드는 건 아니지만, 스프링부트 실행 후 저런 알 수 없는 용어들이 나타나면 어찌 됐든 뭐든 알아야 뭔가를 시작할 수 있을 것 같다는 생각이 들 것이다.. )


IP 패킷의 예, (출처: 위키백과)
스프링부트를 실행하면 나오는 콘솔 화면



IP 패킷은 여러 개의 게이트웨이(gateway) 또는 라우터(router)를 통해 다른 네트워크로 연결된다. 게이트웨이와 라우터는 한 네트워크에서 다른 네트워크로 정보 패킷을 라우팅(어떤 네트워크 안에서 통신 데이터를 보낼 때 최적의 경로를 선택하는 과정)하는 전문화된 컴퓨터를 말한다. 인터넷이 무엇인지, 내 컴퓨터가 네트워크가 어떻게 연결되는지에 대한 그림이 있으니 웹의 규약인 http 등을 더욱 잘 이해할 수 있었다. 위의 모든 내용을 짧고 이해하기 쉽게 정리 요약한 유튜브 영상을 찾았는데, 마침 한국어 자막이 있었다.



패킷과 라우팅, 신뢰성 https://youtu.be/AYdF7b3nMto


Http와 HTML이란 https://youtu.be/kBXQZMmiA4s






아쉽게도 패스트캠퍼스의 자바인강은 위와 같은 내용은 거의 다루지 않거나 아주 짧게 넘어가고, 바로 기술적인 측면으로 넘어갔다. 확실히 바로 실무에 뛰어들 수 있는 사람들을 대상으로 하는 강의이다 보니 기본보다는 실습적인 부분을 더 많이 다룬다. (그러니 기본은 내가 알아서 챙겨야 한다!) 오늘도 이렇게 추가 학습을 하고 나니 전에 무심하게 지나갔던 http의 메소드 부분이 다시 보이는 효과가 나타났다.



Java & SpringBoot로 시작하는 웹 프로그래밍 강의 중




하지만 아직 난관은 남았다. 7주차에는 API 설계를 주로 다룬다. Rest API 무엇인지 이해해야 했다. 나는 Rest API 처음에는  무슨 스프링부트나 롬복 같은 라이브러리 같은 모음인  알았다. 강의 자료는 조금 부족해서 인터넷 검색을 했더니 다시 반가운 생활코딩이 나왔다. 생활코딩 강의 내용에 따르자면, "Rest API HTTP 사용하는 모범사례"라고 표현한다.  


Rest API는 http나 java같은 프로토콜이나 프로그래밍 언어가 아니라, 어플리케이션 프로그래밍 인터페이스를 "대표적인 상태 전송(방식/구조)"(Representational State Transfer, REST)으로 맞추는 것을 뜻한다. 그래서 원칙을 잘 맞춘 코드에는 'RESTful'하다고 표현한다.


어려울수록 기본으로 돌아가자.



기계들의 대화법 - REST API https://youtu.be/PmY3dWcCxXI


https://aws.amazon.com/ko/what-is/restful-api/





#패스트캠퍼스 #내일배움카드 #국비지원 #K디지털기초역량훈련 #바이트디그리 #자바인강

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari