[회고] 22년 9월 넷째 주 돌아보기

Xyan·2022년 9월 25일
0

회고

목록 보기
1/14
post-thumbnail

9월 넷째 주는 처음으로 팀 동료와 협업 해보는 미니 프로젝트 시간을 가졌다.
프로젝트를 진행하며 기획했던 웹 사이트를 만들기 위해 여러 기능들을 추가로 공부하고 적용시켜도 보았다.


API 설계 !?

프로젝트 진행 과정 중 가장 흥미로웠던 단계는 단연코 API 설계 단계였다.

API는 애플리케이션 소프트웨어를 빌드하고 통합하기 위한 정의 및 프로토콜 세트인
애플리케이션 프로그래밍 인터페이스(Application Programming Interface)를 뜻합니다.

일단 API라는 용어 자체가 생소했기에 검색 해봤더니 위와 같은 설명을 찾았다.
처음 이 용어를 봤을 때 도대체 무슨 말인지 감이 잘 잡히지 않았다.

참고했던 인터넷 강의에서는 API를 은행의 창구, 혹은 레스토랑의 직원에 비유했다.
내가실제로 사용해봤던 서비스에서 사용되는 API로는
인스타그램 - 페이스북, 구글드라이브 - 카카오톡 등 공유를 쉽게하게 해주는 API들이 존재했다.

지금에 와서야 내가 이해한대로 설명 해본다면

1. 사용자 입장 : 어떻게 구현되어있고, 또 어떻게 다뤄야할지도 모르는 서비스 ( 우리 팀이 만든 웹사이트 etc ) 를
사용하면서 쉽고 빠르게 원하는 자료에 접근 할 수 있게된다.

2. 개발자 입장 : 위와 같은 서비스를 개발하는 과정에서 개발을 간소화 해주고 시간과 비용을 절약시켜 줄 수 있는 부가적인 프로그램

결국 API의 핵심은 어플리케이션들을 서로 연결해서 통신할 수 있게 된다는 점이 아닐까 싶다.

다시 프로젝트 이야기로 넘어와보자면, 본격적인 개발단계는 API 설계 이후에 진행되었는데
이 설계 단계의 중요성을 개발단계가 다 지나고 나서야 깨달았다...
아직 언어와 기능을 배워가는 단계였던 나와 팀원들은 페이지별로 기능을 구현하는 방식을 채택할 수 밖에 없었는데
서로 구현한 페이지를 마지막에 통합해보는 과정에서 더 뼈저리게 느껴졌다.

다음부터는 기획에서부터 차근차근히 또 확실하게 단계를 밟아나가야겠다.


JWT

이번 미니 프로젝트는 JWT 방식을 이용해서 로그인을 구현 해보기로 했었다.
API에 이어서 JWT까지 왜 이렇게 처음보는 단어들 밖에 없는건지~ 하지만 모르는걸 알아가는 과정도 꽤 재밌다.

JWT 는 JSON Web Token의 약자로 전자 서명 된 URL-safe (URL로 이용할 수있는 문자 만 구성된)의 JSON입니다.

일단 서버에서 클라이언트의 인증을 확인하는 방식에는 대표적으로 쿠키 / 세션 / 토큰이 있다.
그 중에서 토큰 인증 방식은 클라이언트에서 서버에 접속했을 때 해당 클라이언트에 인증되었다는 의미인 토큰을 보낸다.
여기서 JWT 방식의 차이점은 토큰 자체에 사용자의 권한이나 서비스 접근을 위한 정보가 들어가있다.

보통 JWT 방식을 사용하면 클라이언트에서 아이디와 패스워드 등으로 인증하고, 서버에서 서명된 JWT를 생성해서
응답형태로 클라이언트에 보내준다. 다음부터 클라이언트가 서버에게 데이터를 요청할 때 JWT를 HTTP 헤더에 첨부해준다.
결국 서버가 클라이언트에서 온 JWT를 검증하는 단계로 진행된다.

우리 팀은 JWT토큰을 쿠키에 넣어서 통신했는데 이제 생각해보니 참 아이러니하다 ...

또 로그인을 구현하면서 XSS 공격이라는것도 알게되었는데 이렇게 적절하지 않은 값이 코드에 들어오는걸 방지하기 위해서는
특정 라이브러리를 사용하면 된다고 하니 만약 다음에 로그인을 구현하게 된다면 고려해보면 좋을것같다.


느낀점

이번 미니 프로젝트를 진행하면서 굉장히 많은 태그에 둘러싸인 HTML 코드를 처음 다루어봤다.
심지어 우리 팀이 사용했던 BULMA CSS와 뒤섞이면서
각각의 태그들과 태그의 클래스가 어떤 역할을 하는지, 영역이 어디서부터 어디까지인지,
내가 원하는 스타일을 정확하게 적용하려면 어떤 태그에 어떻게 적용해야할지가 굉장히 헷갈렸다. 이런 이유로 예전보다 태그 작성과 설정을 더 자세하게 해줘야해서 구글링을 통해 알지못했던 태그의 속성들을 새롭게 알게되는 기회였다고도 생각이든다.

또한 같이 프로젝트를 진행하는 팀원끼리 설치하는 패키지의 버전을 통일하는것이 중요하다는걸 알았다. JWT구현을 위해 설치했떤 pyJWT의 버전이 달라서 발생하는 오류때문에 한참 헤맸었던 기억이 새록새록 떠오른다 ...

profile
Yes, I can!

0개의 댓글