진행 날짜: 2025.03.26 수요일 10-11PM
스터디 주차 및 주제: 1주차 - 1장. 디자인 패턴과 프로그래밍 패러다임
공부한 부분은 아래 블로그 포스팅에서 확인할 수 있습니다 :)
https://minzee.tistory.com/132
[면접을 위한 CS 전공 지식 노트] 1주차 - 1장 디자인 패턴 & 프로그래밍 패러다임
라이브러리 vs 프레임워크라이브러리 library: 폴더명 파일명 규칙이 없기에 비교적으로 자유롭다. 특정 기능을 제공하는 도구로, 개발자가 원하는 부분에서 필요한 기능만 가져다 사용할 수 있다
minzee.tistory.com
스터디 진행 방식
디스코드를 통해 각자 공통된 내용을 공부하고 정리한 후 발표하는 방식으로 진행했다. 발표 후 서로 궁금한 점을 질문하며 토론도 했다.
스터디를 통해 새롭게 알게된 점
CORS 에러 해결법
- CORS 에러가 발생하면, 그동안은 주로 백엔드 개발자에게 이를 알리고 해결을 요청하는 방식으로 처리했었다. 하지만 이번 스터디를 통해 프론트엔드에서도 프록시 서버를 설정하여 해결할 수 있다는 점을 알게 되었다. 물론 보통은 백엔드에서 해결하는 것이 권장되지만, 프론트엔드에서 직접 해결할 수 있다는 점을 배우고 나니, 추후 CORS 에러를 다뤄볼 필요성을 느꼈다.
디자인 패턴
- 예전에는 디자인 패턴을 무작정 암기하려 했지만, 이번 스터디를 통해 그 개념을 조금 더 이해할 수 있었다. 특히 옵저버 패턴은 useState 훅과 매우 유사하다는 사실을 깨달았다. 옵저버 패턴은 상태가 변경되면 이를 자동으로 알려주는 방식인데, 책에서 이 내용이 명시되어 있지 않았지만, useState의 작동 방식과 매우 유사하다는걸 느꼈고 이후 이를 확인해본 결과, useState가 사실 옵저버 패턴의 한 예라는 것을 알았다. 디자인 패턴을 실제 개발에 어떻게 적용할 수 있는지 이해하는 과정이, 그저 패턴의 특징이나 장단점을 암기하는 것보다 훨씬 더 도움이 되었고, 더 잘 기억에 남을 것 같다는 느낌을 받았다.
DTO
- API 연결 시 필요한 타입과 속성들을 정리한 것이 DTO(Data Transfer Object)라는 점을 알게 되었다. 이 부분은 백엔드 공부를 하면서 더 깊이 공부할 예정이며, DTO를 활용하는 방법에 대해 더 알아볼 필요가 있다.
MVC 패턴
- 백엔드 개발에서 흔히 사용되는 MVC 패턴에 대해 배웠다. 특히 스프링부트 프레임워크가 이 패턴을 기반으로 만들어졌다는 점을 알게 되었다. 또한 프로젝트 규모가 작은 경우에는 패키지 구조로 관리하고, 프로젝트가 커지면 도메인별로 폴더를 관리하는 방식이 유리하다는 점도 알게 되었다. 프론트엔드의 폴더 구조와 유사한 점이 많아 흥미로웠다. 예를 들어, 프론트엔드에서는 pages, 공용 components 폴더를 만들고, 각 페이지별로 폴더를 나누어 관리하는 방식과 유사했다.
스터디 이후
뭔가 내가 따로 혼자 공부해서 정리했다면 알지 못했던 부분들이 많았겠구나를 생각했다. 이렇게 생각한 이유는 1) 같은 내용을 공부했더라도 내가 놓친 부분이 있기 마련인데 다른 스터디원을 통해 알게되서 더 공부가 됨. 2) 나빼고 모두 백엔드 개발자라 내가 몰랐던 영역에 대해 알 수 있게됨.
예를 들어, 프록시 패턴에 대해서는 그저 개념만 알고 있었지만, 백엔드 개발자들은 이를 실제로 많이 사용한다고 해서 큰 차이를 느꼈다. 특히 Nginx에 대해서도 이전보다 훨씬 더 알게 되었다.
백엔드 관련 지식은 지금은 정말 부족하지만 스터디를 통해 용어나 개념을 접하면서 이해의 폭이 넓어졌다. 안그래도 따로 Node.js를 공부할 예정인데, 스터디를 통해 얻은 정보들이 큰 도움이 될거라 생각한다. 특히 백엔드 개발자들이 겪는 문제나 고민들을 듣는 것만으로도 많은 도움이 됐다. 내가 100% 이해하지 못한 부분도 있지만, 백엔드에 대해 조금씩 귀가 트이는 계기가 된 것 같다.
그리고 스터디가 있기에 강제성이 있고 기한이 있기 때문에 하게 된다..ㅎㅎ
앞으로도 열심히 해보자
'CS 공부' 카테고리의 다른 글
[면접을 위한 CS 전공 지식 노트] 4주차 - 4장 데이터베이스 (0) | 2025.04.16 |
---|---|
[면접을 위한 CS 전공 지식 노트] 3주차 - 3장 운영체제 (0) | 2025.04.09 |
[면접을 위한 CS 전공 지식 노트] 2주차 - 2장 네트워크 (1) | 2025.04.02 |
[면접을 위한 CS 전공 지식 노트] 1주차 - 1장 디자인 패턴 & 프로그래밍 패러다임 (0) | 2025.03.26 |