도도한 개발자

[TIL] 2023/09/11 본문

TIL

[TIL] 2023/09/11

Kiara Kim 2023. 9. 11. 21:06

🐈‍⬛ 오늘 공부한 내용

  • 인프라 아키텍쳐 개선 논의
  •  Content-Type
    • application/x-www-urlencoded
    • application/json
  • 즐거운 코드리뷰

 🐾 느낀 점 & 배운 점

🌱 인프라 아키텍쳐 개선 논의

단일장애지점(SPOF)을 줄일 수 있도록 우리의 인프라 아키텍쳐를 어떻게 변경할 수 있는지에 대해 논의했다. DB의 경우 조회(Read)와 수정(Create, Update, Delete)용으로 나눠 조회나 수정에 의한 서버 다운에 대처할 수 있도록 했다. 그리고 우리의 프로그램은 스케줄링을 사용해서 주기적으로 데이터를 업데이트 해주는데 이를 batch 서버에 두면 좋을 것 같다고 생각했다. 음, 끗.

 

🌱 Content-Type

미션 요구사항으로 로그인이나 회원등록을 할 때 request body가 key=value&key=vale 이런식으로 되어 있었고 그 때의 Content-Type이 application/x-www-form-urlencoded였어서 만약 타입이 저거라면 Map 형태의 바디를 key-value로 채워줬다. 

그런데 메리의 코드리뷰를 보고 아차 싶었다.

message body에는 다양한 형식이 들어올 수 있다는 걸 리뷰 보기 전까진 깨닫지 못했다.

그래서 content-type에는 어떤 것들이 올까 하고 알아봤다.

 

Text타입으로는 text/css, text/javascript, text/html, text/plain 등이 있고 

file을 보낼 땐 multipart/form-data를 사용하고

Application 타입으로는 application/json, application/x-www-urlencoded가 있다고 한다.

 

 

 

대부분의 요청에 대한 Content-Type은 application/json 타입인 것이 많다. 형태는 {key:value}이다.

application/x-www-form-urlencoded는 html의 form의 기본 Content-Type이다. key=value&key=value의 형태로 전달된다

 

그런데 나는 여기서 한가지만 생각했던 것이다.

 

그래서 요청 메세지 바디를 관리하는 클래스를 하나 만들어 전체 내용을 읽은 String과 Content-Type을 받아 조건에 맞게 body를 생성하도록 했다. 다만 지금 미션의 요구사항엔 application/x-www-urlencoded 타입 외에 다른 타입은 다루지 않고 있는 것 같아서 확장성만 열어두고 pr를 보냈다.

 

🌱즐거운 코드리뷰메리의 코드리뷰를 반영하고 이젠 민트의 코드를 리뷰할 차례였다. 즐거웠다. 다른 사람의 코드를 유심히 보고 리뷰하는데 많은 생각을 하게 된 것 같다.(리뷰요청 마지막 날에 첫 코드리뷰 홍홍) '하고자 하는 말을 어떻게 전달해야 상대방이 상처받지 않고 받아들일까?'(지극히 F적인 걱정)부터 시작해서 '지금의 구조보다 더 나은 방법이 있는데 어떻게 제안하는게 좋을까?'까지 많은 고민을 하면서 코드리뷰를 했다. 음,, 재밌었다. 

💭 감정회고

미션 끝ㅠ

이제 프로젝트 리팩터링 하고싶었는데 생각해보니까 내일 또 미션 시작이다. 오마이갓. 나도 빨리빨리 생각하고 빨리빨리 코드 짤 수 있었으면 좋겠다.

'TIL' 카테고리의 다른 글

[TIL] 2023/09/13  (1) 2023.09.13
[TIL] 2023/09/12  (3) 2023.09.12
[TIL] 2023/09/08  (2) 2023.09.08
[TIL] 2023/09/03  (0) 2023.09.03
[TIL] 2023/09/01  (0) 2023.09.01