내 상황
1. 회사에서의 위치
서버 개발자로 약 6개월정도 달리고 있는데, 스스로에게 부족함을 많이 느꼈다. 스타트업에 취업한 뒤 금새 팀장으로 진급했고, 부담이 꽤 커졌다. 개발 실력이 좋았냐? 분명 아니다. 그저 프론트와 백을 둘다 흐름을 이해하고 있는 정도라고 생각하지만, 그 부분들을 유기적으로 호흡하면서 조금은 다른 사람들을 이끌 수 있는 부분들에 있어서 좋게 봐주신 것 같다.
2. 회사에서 고민했던 점
감사하게도 신입 주니어 개발자 치고는 많은 경험을 한 것 같다. 단순히 서버에 관련된 개발만 한 것이 아니라 내가 관리해야 한다는 측면을 고려했을 때 내 현재 상황에서 어떤 일이 가장 필요할까? 고민했을 때 최대한 다소 불필요하다고 느껴지는 시간을 줄일 수 있는 ci/cd 였다. 다만 배포를 자동화하는 부분은 당장 프로젝트와는 거리가 어느정도 있다보니 퇴근하고 정말 열심히 뽀갰던 기억이 난다.
Jenkins를 통해 배포하고 웹훅을 받아 관리했고, 각 브랜치에서 프론트 팀원들의 커밋내용을 웹훅으로 캐치했고, 5시경에 브리핑한 후 머지해서 배포하는 쪽으로 진행했고, 별도로 서버쪽은 다이렉트로 마스터로 커밋을 올릴 경우 개발서버에 바로 푸시할 수 있도록 해서 퇴근한 뒤 한 공부가 정말 달고 단걸 계속 체감했던 것 같다.
3. 크게 부족함을 느꼈던 부분
코딩 외에도 시야를 많이 트게 되었는데, 예를 들면 인프라적인 측면에서 꽤 많은 고찰과 부딪힘이 있었다. aws에서 인스턴스 자체도 어색한데 vpc와 네트워크 등에 대해 많이 배우게 되었다. vpc 내에서 private, bastion 인스턴스를 나누고 터널링해서 접속하도록 제한을 두었다. 이쯤에서 정말 네트워크에 대해 무지한 부분들때문에 답답했다. 코딩은 내가 구현하고자 하는 부분이 명확하고, 논리적으로 계산을 하는 부분이지만 이쪽 영역은 각각 상황마다 달라서 일반적인 영역은 여러 구조도를 참고해서 구축했지만, 여러 에러들 중엔 구글링해도 나오지 않는 부분들이 많았다.
4. 퇴근한 후
일하는 동안은 코딩에 전념하고, 퇴근한 후 vsc에서는 잠시 손을 떼고 외적인 측면에 대한 공부를 열심히 하고 바로 회사에 적용하는 과정을 쭉 진행했다. 팀장이 되고 나서 개발팀에서 필요한 부분들을 퇴근한 후에 채우면서 보람도 느끼지만 내 스스로 많은 배움이 있어서 좋았던 것 같다.
회사랑은 별개로 퇴근하고 하루에 한시간정도씩 사이드프로젝트를 진행했었다. Nest.js 데이팅앱 서버 개발을 했는데, 아무래도 여기서 테스트하면서 회사에 적용시킬 수 있었던 부분이 좋게 작용했던 것 같다. 그리고 개념적으로는 알고 있었지만 redis에 대해서도 어쩌면 고도화에 해당하는 부분이 될 수 있기에 염두만 하고 있었는데, 이번 기회에 캐싱하는 부분부터 차근차근 적용해볼 수 있었다.
여태까지 6개월동안 웹개발자로 우당탕탕이면서도.. 나름 꽤 알찬 시간들을 보내온 것 같긴 하다. 나름 하루도 빠지지 않고 열심히 이것저것 구현해보고 접목하고 해봤는데, 뒤돌아보니 꽤 보람차게 지내온 것 같다 ㅎㅎ

자, 이제 본론으로 들어가서..
5. 왜 모의해킹 스터디를 수강하게 되었는가?
나름 열심히 했지만서도 한 가지 불안함이 채워지지 않았다. 바로 보안적인 측면이였다.
앞서 언급했던 것처럼 인프라에 대해 무작정 안전한 구조를 알아보고 택하면서도 이게 왜 안전한 것이고, 어떤 공격이 들어올 것이라는 부분에 있어 막연했다. 처음 프로젝트를 해보면서 cors라던지 https 등 네트워크적인 부분들로 시작해서 ip, 포트 등 인프라를 어떻게 구성하는지 구조적으로는 알겠는데, 그래서 어떤 공격이 들어오는지를 잘 모르니 막연하게 그런가보다 할 수 밖에 없었던 것 같다.
예를 들면 이런 느낌인 것 같다. 쿠키를 적용할 때, 아 httponly를 적용하면 클라이언트에서 document.cookie로 쿠키를 확인할 수가 없으니 탈취할 수 없다는 거구나. 그런데 어떻게 탈취를 하는데? httponly를 적용하면 클라이언트에서 확인하지 못하는거면 안전한거 아닌가? https는 왜? cors 는 왜 같은 주소로만 허용하려 하지? 맥락이야 파악할 수 있고 대비하는 것들이야 잘 나와있는 레퍼런스들을 참고하면 되겠지만 그것들은 단순히 남들이 안전하다니까 안전하다고 하게 되는, 꽤나 불안한 가운데 있게 되어 어떻게 공격이 들어올지에 대해 고민해보다가 제대로 배워보기 위해 스터디에 참여하게 되었다.
처음에 웹개발에 대해 1개월정도 공부하고 나머지는 웹해킹에 대해 공부하는 커리큘럼으로 이루어져 있고, 내가 고민했던 부분들의 정 반대 상황에서처럼 해킹을 할줄 알아도 정작 해킹을 어떻게 할지 막막할 수 있겠다. 그래서 직접 웹으로 로그인을 구현하면서 구조적인 부분들에 대해 초반에 배우는 것 같다.
코멘트
오늘 ot를 들으면서 잘 들어왔다는 생각이 든다. 물론 취업반이라 어쩌면 나랑은 조금 근본적인 계기는 다를 수 있지만, 오히려 취업하려고 열심히 준비하시는 분들 보면서 나도 더 독하게 마음먹고 5개월동안 달려보려 한다!
php, html로 로그인하는 부분을 구현하는게 1차로 준비해야될 내용인데, 일단 전에 만들어뒀던 것들이 있어서 사용하기로 했다. (react + node.js) 굳이 간단한 로그인인데 nest처럼 무거운 것들은 내려놓고 가볍게 진행하려 했지만 나중에 기능을 추가한다고 하여 확장성을 고려해서 기존에 만들어뒀던 리액트 프로젝트를 가져왔다.
우분투를 설치해야 하는데 vmware나 virtualbox를 추천해주셨지만 arm을 지원하지 않거나 유료거나.. 하는 여러 이슈로 일단 놀고 있는 데스크탑에 우분투를 설치하고 ssh로 접속해서 만들어둔 프로젝트를 넣어둔 상태다. 데이터베이스도 우분투 내부에서 간단히 꺼내다 쓰고, 로컬에서는 터널링해서 우분투 내부의 데이터베이스를 확인하려 한다.
취업한 이후로 어떻게 하면 회사에 기여할 수 있을지 고민을 참 많이 했는데, 뭐 사실 지금도 크게 다르지 않긴 하지만 조금 더 나에게 투자하는 시간을 보내게 될 것 같다. 지금까지의 성장에도 참 기쁨을 많이 만끽하고 있지만, 앞으로 5개월동안 바쁘겠지만 설렌다 ㅎㅎㅎ
'개발 > segfault 모의해킹 6기' 카테고리의 다른 글
| 10주차 xss 2 쿠키 탈취 (0) | 2024.06.26 |
|---|---|
| 9주차 xss 파헤치기 (0) | 2024.06.18 |
| 4주차 과제 | burp suite 이용하여 ctf 문제풀이 (0) | 2024.05.08 |
| 1주차 과제 | 웹서버의 이해 및 로그인 페이지 구현 (0) | 2024.04.21 |