SSAFY에서 기수가 높아지면서 교육생들이 주로 선호하는 기술의 변화가 눈에 많이 띈다.

1기때는 Vue로 화려한 웹 페이지에 초점.

2~4기 때에는… 코로나로 인해 WebRTC를 강제하는 분위기였음. 그리고 하드웨어 쪽을 유난히 많이 권장했고 그 영향이 지금도 있음. 이 때 프론트 엔드는 Vue에서 서서히 React로 넘어오는 분위기였으며, SpringBoot도 서서히 사용하기 시작하였음.

5기 부터는 갑자기 MSA열풍이 불기 시작했음. 백엔드를 맏은 교육생들이 너도나도 MSA를 해 보겠다고 하였고 docker는 이제 기본중의 기본 기술이 되어 버렸음(4기때 까지는 docker는 아는 사람만 쓰는 분위기..). nginx도 이제 기본중의 기본이 됨.

어제 8기의 마무리를 보았는데 주로 사용된 기술 스택을 정리해 보면 다음과 같다.

  • 무중단 배포 : 교육 프로젝트에서 무중단 배포가 의미가 있을 지는 모르겠지만, 교육생들은 그래도 그 경험을 가져가고 싶은 것 같다.
  • k8s : 현업에서 쓴다는 이유로 역시 많이 쓰려고 한다. 하지만 백엔드 서버를 여러대 두지 않는 이상은 큰 의미도 없을 뿐더러 SSAFY에서 제공하는 서버가 이를 돌리기에는 무리가 있다. 마지막 자율 프로젝트때 쓰는 걸 추천한다.
  • nginx의 고급 활용 : 나도 교육생들에게 가끔 알려주는 내용인데, nginx의 라운드로빈 방식의 분산 설정, 접속 사용자 수 제한 설정 등의 방법을 활용하는 교육생들이 간간히 보였다.
  • 서버의 모니터링 : GA와 제니퍼 프론트 등 제3자 솔루션을 적극 도입하여 나름 모니터링 시스템도 구축했다.
  • Spring Cloud의 도입 : MSA 때문에 다 이거 쓴다고 한다. MSA=Spring Cloud사용 으로 잘못 인식될 까봐 두려운 포인트도 있다. 하지만 Spring Cloud를 쓰면 편한것도 있어 많이 쓰는 것 같다.
  • CDN및 캐시, 메시지큐 서버 : 속도 개선을 위해 이를 써 보라고 나도 이야기하고 있고 다행히도 교육생들도 이를 잘 따르는 것 같다. 스트리밍 시 CDN, DB속도개선을 위해선 캐싱 및 이중화, 느슨한 연결을 위해서는 kafka와 같은 메시지큐 서버를 도입한다.
  • PWA, FCM의 도입 : 웹 서비스의 풍부한 기능을 위해서는 필수
  • ChatGPT의 도입 시작 : 개발도중에 chatGPT를 활용하지만 chatGPT가 나오면서 그 결과를 직접 활용하는 사례가 보이기 시작했다. 예를 들어 ‘원생들에게 안내문 작성 기능’은 chatGPT API를 이용하여 만들어 준다.

  • Flutter의 약진 : 앱을 하는 교육생들은 이제 리엑트 네이티브 보다는 플러터를 쓰기 시작했다. SSAFY내에서 리액트 네이티브는 접근성만 좋지 레퍼런스 없는 것으로 악명이 높기 때문일 것이다.
  • DB이중화 : Read, Write용 DB의 분리, DB클러스터링 등을 통해 안정성을 높이려는 팀도 보이기 시작했다.

프론트엔드 부분은 내가 잘 몰라서 정리를 따로 하지 못했다. React와 Vue의 사용 비율이 8:2 정도 되는 것 같으며 React단독으로 쓰기 보다는 Next.js와 같은 발전된 형태로 사용되기 시작했다. IoT 프로젝트에서는 기술의 스팩트럼이 그리 크지 않아 계속 쓰이는 c#이나 pyQT, C++가 쓰이는 것 같다.

시간이 지나면서 과거에는 교육생들이 어떤 서비스를 만들까 궁금했었다면 지금은 어떤 기술을 쓸 까가 더 궁금해진다. 제한된 리소스로 만드는 서비스들은 크게 바뀌지 않는 것 같기 때문이다.