<프로그래머스 데브코스 풀스택>2026-01-13 TIL

백엔드 다시 돌아보기

백엔드는 어떤 구조를 가지고 있는가? 

클라이언트?
: 사용자 =>프론트엔드에게 요청 (백엔드 입장에서는 프론트엔드가 클라이언트가 될 수 있음)

 

👉🏻

백엔드는 동적 페이지(웹 어플리케이션 서버, 데이터베이스),
프론트엔드는 정적 페이지(클라이언트, 웹서버) 신경

 

❓API란? (Application Programmin Interface)

라이브러리에 접근하기 위한 규칙들을 정의한 것

 

지도 서비스를 만든다고 생각해보자. 

서울교통공사의 데이터베이스를 개인하게 줄 수 없지,

개인과 데이터베이스 사이에 API라는 걸 껴서, 바로 연결이 아니라 대신 접근하고 욫ㅇ할 수 있게함

 

Interface란?

중간에서 양쪽에 있는 친구들을 중재/매개체가 되어주는 역할

- GUI(Graphic User Interface) : 컴퓨터(프로그램)한테 명령을 내릴 때, 그래픽을 사용해서 내리는 방식

- CLI(Command Line Interface) : 명령어 문장("줄") 컴퓨터한테 명령을 내리는 것

백엔드는 여기서 api / 서울교통공사 모두 개발!

 

REST API 

= HTTP 규약을 잘 따른 API 

API : "데이터 아무렇게나" 주면 되는거 아닌가? HTTP 형식 따르지 않고 대충 끼워넣어(과거)

==> HTTP 창시자 세미나 : "형식 따르면 효율 극대화 될거야!"

웹(=인터넷망 속에 가상 공간) 개발자 

= 인터넷을 돌아다니기 위한 규약을 지켜야함

= HTTP를 지켜야만!! 💡     

 

REST API vs RESTful API 
RESTful API는 REST API보다도 HTTP 규약을 매우매우 잘따른 API

 

"인터넷 상에서 공유/전달 하고 싶은 모든 것은 다 HTTP에 넣어서 보내야한다!"

 

HTTP 프로토콜 템플릿 - Head/Body

Body

1) 전달해줄 데이터 / 화면 / ...

2) 이 데이터 좀 줄래? + "목적"

ex) 전체 상품 보고 싶어 -> 전체 상품 리스트 + "조회" / 이 상품 등록 해줘 = ___ + "등록"

👉🏻 ///////////////////////////이렇게 rest스럽게 전달해야지 효율적!

 

URL(Uniform Resource Locator)

: 인터넷 상에서 웹 페이지가 어디있는지 "위치"를 알려주는 것 뿐 아니라, 데이터 연산 해달라고 서버에 요청을 보내는 방법!

http://localhost:8888 : (야 컴퓨터야) /전체 상품 조회

http://localhost:8888/상품 등록

http://localhost:8888/전체 상품 삭제 

 

<Rest API URL 규칙>

- 대문자 X, 소문자 O

- 언더바(_) X, 하이픈(-) O

- 마지막에 / 포함 X

- 💡행위를 포함하지 않음 = 목적을 포함하지 않음! 메소드로 꺼내자💡

- 파일 확장자 포함 X

- 복수형을 쓴다 (1️⃣개별이라고 하더라도, 상품 중의 1개니까 복수! / 2️⃣통일감)

 

URL + Method 연습

http://localhost:8888/product 상품 등록 "POST" 

http://localhost:8888/products 전체 상품 조회 "GET"

http://localhost:8888/products 전체 상품 삭제 "DELETE"

 

어떻게 구성해야할까? "API 설계"
1. 쇼핑몰 메인 페이지 틀 -> 전체 상품 조회 API -> 전체 상품 데이터를 받고 -> 받은 데이터를 페이지에 뿌려줌

http://localhost:8888/products (method: get)

2. 상품 상세 페이지 틀 -> 상품1(id) 개별 조회 API -> 데이터를 받아서 -> 틀에 맞게 뿌려줌

http://localhost:8888/product/{id} (method: get) 💡상품의 Id를 변수로 가져옴!

ex)

http://localhost:8888/product/1 (method: get) => id = 1인 데이터를 요청

http://localhost:8888/product/2 (method: get) => id = 2인 데이터를 요청

 

3. 상품 관리 페이지 -> 전체 상품 조회 API -> 데이터 ... 

4. 상품 수정 페이지 -> 상품1 개별 조회 API ... 완료 버튼 -> 상품1 수정 API

http://localhost:8888/product/{id} (method: put) 


휴가일정때문에 몰아쳐서 강의를 듣고 공부를 하고있다.. 

복습을 하고 싶은데 맘이 쫄려서 급하게 하는 감도 없지않아있는듯

오늘은 그래도 이론강의였어서 무난했는데 어제 강의는 복습이 꼭 필요할 것같아서 다시 한번 보고 자야겠다!

#멘토링

오늘 본격적인 첫 멘토링 시간이었다. 

진행하고 싶은 프로젝트 주제 / 이력서 초안 / QnA을 자유롭게 이야기해나가는 식으로 진행이 되는 것같았다. 

호기롭게 전부 다 준비하려고 오늘 아침에 강의를 전부 들어놓고 저녁에는 이것들을 하는 데에 집중했다. 

그런데 .. 

이력서를 쓰려 프로젝트를 열심히 고르는데, , 막상 적으려고 깃허브 코드를 뜯어보니 이력서에 적기 너무 부끄러울 정도의 프로젝트여서 도저히 쓸 수 가없었다. 그래서 이력서를 보여드리는 대신에 QnA로 이런한 프로젝트들을 어떻게 살려야할지를 여쭤보는 걸로 다짐하고 멘토링에 참여했다. 

 

멘토링 시간에 팀원분의 이력서를 볼 수 있었는데, 정말 너무 삐까뻔쩍한 것이 아닌가.. 나는 정말 첨보는 도구들만을 써서 구현을 하셨는데 멘토님께서 시대에 맞게 잘 골라 구현했다고 좋은 말씀을 하셨다. 그리고 사실 난 이력서가 그렇게 기능구현을 그렇게까지 장황하게 설명해야하는지도 알지 못하고있었는데,, 

QnA로 내 질문을 했을 때에는 나를 조금 안타까워하셨던 것같다 ㅎㅎ.. 기분탓일까 ㅜㅜ? 나도 꽤나 1년동안 열심히 살아왔다고 생각했는데 이렇게 과거를 돌아보니 남은게 없다는게 너무 괴롭고 현타가 와서 멘토링이 끝나고 나서도 오랜시간 앉아서 많은 생각을 했던 것같다.. 멘토님 말씀으로는 그런 프로젝트는 내가 더 공부해서 업그레이드를 한다면, 그냥 제작한 프로젝트 보다도 더 좋은 스토리가 될 거라고 해주셨는데, 사실 이게 가능할지도 모르겠다. 백엔드 분들이 구현하신 게 지금 배우고 있는 것과 아예 다른 방식인 것같기도하고, 나 혼자 해낼 수 있을지에 대한 겁이 나는 거같기도하다. 

이거에 대해 조금 더 고민해보는 시간을 가져야될 것같다. 

그게 아니더라도 질문하나 드리는 게 너무 떨려서 말을 계속 저는 것도 너무 신경쓰였다. 다른분들은 편하게 질문하고 이야기하시는 것같은데 나만 너무 어린 애처럼 딱딱하게 한 것같았다..

 

그럼에도 불구하고 멘토링에서 정말 가치있는 걸 많이 들었던 것같다.

특히 다른 팀원분이 생성형AI 관련한 부분을 많이 질문하셨는데, 그 중에 생성형AI의 모든 것을 하루빨리 맛보고 활용하는 법을 습득하라는 말이 크게 남았다. 그리고 개발자가 이때문에 위협이 된다고 하더라도, 단지 개발자만이 그런 것이 아니고, 개발자에겐 오히려 기회가 될 수 있다는 점, 그리고 현업에서 더 집중되는 유지보수 관련해서는 AI가 부족하다는 점 등에서 뭔가의 작은 희망을 보았던 것같다. 사실 요즘 내가 대학교1학년때 ChatGPT가 나온 거에대한 원망을 하고 있었는데 ㅋㅋ 그래도 이젠 좀 더 긍정적으로 활용해 보려 노력할 것같다. 

멘토링 내용을 그대로 블로그에 써도 되는지 모르겠어서 우선은 노션에 정리했는데, 나중에 본격적으로 취준할 때까지도 유용하게 쓸 수 있을 것같다!

 

우선 멘토링 이후 내 계획으로는

✨ 프로젝트/이력서 :

- <포트폴리오 페이지>(이력서)에 넣을 만한 프로젝트 추리기

- 과제로 제출할 정도로 일단

- 연결할 만한 외부 API 고민해보기

 

- "앞으로 프로젝트 진행할 때 코드 한줄한줄을 허투로 보지않고, 그 한 줄에 대한 이유를 생각하고 정리하자. 기록하자. "

- "AI를 정답이 아닌 효율향상 도구로 최대한 끌어모아 사용해보자." 

> 이번 멘토링에서 얻은 가장 큰 것들인 것같다. 너무 좌절하지말고 이걸 자극삼아 더 열심히 살아보자!! 아자아자!!!!

 

+ 그리고 이렇게 느낀점도 매일매일 잘 써보자