본문 바로가기

til34

230113~230114 TIL 오늘 배운 것 & 한 일 신입 백엔드 개발자로서의 방향성 이번 프로젝트에서 웹 소켓을 도전해보고 싶었지만 현재 기획된 서비스에서 웹 소켓을 자연스럽게 넣을 만한 기능이 없어서 결국 넣지 않기로 결정하였다. 그러다보니 왠지 실전 프로젝트에서 도전해보는 기술이 너무 적어보였고, 이게 문제가 되진 않을까 하는 막연한 불안감이 있었다. 그래서 오늘 멘토님과의 대면 피드백 시간에 신입 백엔드 개발자로서 새로운 기술을 여러 가지 도전해 보는 것이 더 좋을지, 아니면 기본기를 튼튼하게 하는 것이 더 좋을지 여쭤보았다. 결론은 '기본이 중요하다' 였다. 항해를 진행하면서 짧은 기간 동안 정말 많은 프레임워크와 라이브러리를 사용할 수 있게 되었다. 그런데 그 중 과연 내가 제대로 알고 사용하는 것이 얼마나 될까?? 어떤.. 2023. 1. 14.
230112 TIL 오늘 배운 것 & 한 일 CORS와 preflight 오전에 회원가입 기능을 테스트하던 중 prefilght 문제가 발생했다. CORS와 preflight 문제를 해결한 적이 있었어서 이번에는 Security 코드에 미리 CORS 대비를 해놓았었다. 그런데 preflight가 어떻게 작동하는 지 제대로 이해하지 못했어서 이번 문제를 해결하는데도 살짝 고생했었다. preflight는 특정 상황에서 본 요청을 보내기 전에 서버에 먼저 보내는 요청이다 (특정 상황이 어떤 경우인지는 아직 더 찾아봐야 한다..). preflight 요청은 OPTIONS 메소드로 요청을 보내며, 200 응답을 받지 못한다면 본 요청은 CORS 오류가 발생하게 된다. 저 내용이 상당히 재밌다. CORS 설정 오류가 아닌 다른 오류로.. 2023. 1. 13.
230111 TIL 오늘 배운 것 & 한 일 노션의 실시간 저장과 웹 소켓 원래 지금 진행하는 프로젝트에서 노션 같은 실시간 저장 기능을 구현하려고 하였다. 웹 소켓에 대한 개념이 없었어서 처음에는 실시간 저장을 하려면 웹 소켓이 반드시 필요한 줄 알았다. 그런데 노션의 기술 블로그를 보니 '실시간 저장'과 '다른 사람과의 실시간 통신'은 다르다는 걸 알게 되었다. 웹 소켓은 다른 누군가와 실시간 통신을 할 때 필요한 것이고, 실시간 저장은 프론트의 로컬 스토리지 만으로 구현할 수 있었다. 실제로 노션도 적은 내용을 실시간으로 저장하는 건 로컬 스토리지를 사용하고, 그 내용을 다른 사용자에게 바로 보여주는 부분에서만 웹 소켓을 사용한다. 우리가 이번 프로젝트에서 만드려는 서비스는 투두리스트 + 다이어리 이다. 아직은 다른 .. 2023. 1. 11.
230110 TIL 오늘 배운 것 & 한 일 CD 구현 Git Actions를 이용한 CD 구현이 드디어 끝났다. Git Actions는 모두 통과했는데 CodeDeploy에서 실패가 떠서 그걸 해결하느라 오래 걸렸다. 직접 EC2 서버의 로그 파일을 열어보면서 오류를 찾아서 해결했었다. 나중에 알게 된 사실이지만 로그를 안보고 AWS 인터페이스로도 확인을 할 수가 있었다..! 위 사진처럼 CodeDeploy 인터페이스에서 이벤트별로 상태를 확인할 수 있었다. 사진에서 보이듯이 AfterInstall이 실패한 거였는데 알고보니 scripts 파일 안에 있는 start.sh와 stop.sh 파일에서 프로젝트의 경로를 잘못 설정해줘서 저 둘을 실행하지 못한거였다..! 어쨌든 로그 찾는 법도 어느 정도 익혔으니 나쁘지 않은 수확.. 2023. 1. 10.
221226 TIL 오늘 배운 것 & 한 일 회원가입, 로그인 구현 오늘 클론 프로젝트에서 회원가입과 로그인을 구현하던 중에 궁금한 게 생겼다. DTO를 다른 DTO로 변환하는 과정에서 Mapper를 사용했는데, 이게 맞는 것인지를 모르겠다. 이 질문에 답하려면 일단 Mapper를 사용하는 이유부터 정확히 알아야 할 것 같은데, 다른 일들이 급해서 찾아볼 시간이 없다..ㅠㅠ 일단 질문방에 질문을 올려 두었으니 천천히 기다려보자. Spring Security JWT 필터에서 굳이 uri를 따로 확인해 줄 필요가 없었다. 그냥 Token이 null 인 경우 통과하게 해주면 모두가 행복해진다! 어차피 Security Config에서 uri들을 설정해주니 JWT에서 이중으로 검사할 필요가 없다. 잘한 점 개선할 점 2022. 12. 26.
221222 TIL 오늘 배운 것 & 한 일 신입 백엔드 개발자 로드맵 프로젝트를 진행하다보니 공부할 것이 정말 무궁무진 하다고 느껴졌다. 하지만 내 시간은 유한하고, 그 모든 걸 공부할 수는 없어보였다. 그래서 내가 해야할 일들의 우선 순위를 정하고 싶었다. 이 고민을 해결하고자 오늘 매니저님께 "신입 백엔드 개발자로서 경쟁력을 갖추기 위해선 무엇이 필요한가요?" 라는 질문을 드렸다. 그리고 꽤나 명쾌한 해답을 얻을 수 있었다. 현재 내 상황에서 선택할 수 있는 진로는 크게 두 가지라고 생각한다. 하나는 "백엔드 엔지니어" 이고, 다른 하나는 "DevOps 엔지니어" 이다. 물론 DevOps도 무리다. 사실상 현재 선택 가능한 진로는 백엔드 엔지니어 하나이다. 그렇다면 백엔드 개발자로서 경쟁력을 갖추기 위해선 무엇이 필요.. 2022. 12. 23.