백엔드 개발자로서의 고민
STUHEL 이라는 개인 토이프로젝트를 만들면서, 이 프로젝트가 '백엔드 개발자'로 어필이 가능한 프로젝트인지 고민하곤 했다. 단순하게 작동하는 프로젝트를 만드는 것이 아닌, 백엔드 개발자로서 나의 실력을 성장시켜줄 수 있는 프로그램을 만들고 싶었기 때문이다. 여러 조사를 거치며 [ SOLID 5원칙을 적용한 객체지향설계, RESTfull API, 데이터 분할 조회, 트렌젝션관리, Session ] 등을 추가하였고 차후에 [ Spring Security(혹은 비밀번호 암호화), 쿠키, Filter ]를 추가하기로 계획했다.
그럼에도 여전히 "이게 맞나..?"하는 고민이 있었고, (혼자 공부하는 사람이면 정말 분야 불문하고 할 고민 아닐까..)
백엔드 개발자를 대상으로 한 원티드의 <백엔드 온보딩 첼린지> 강의 질의시간에 질문을 남겼다.
"토이프로젝트를 제작중인데, 현재 CRUD 수준의 기능개발만 하고 있는 상황입니다.(게시판, 댓글, 예약기능, 로그인, 회원관리 등) 백엔드 개발자로서 영향력있는 프로젝트를 하려면 어떤 기술들을 적용하면 좋을까요?"
혼코 백엔드개발 추천방법
너무나도 감사하게도, Speaker이신 훈님 뿐만 아니라 같이 강의를 듣고있는 분들도 채팅창으로 조언을 주셨다. (개발자들 진짜 착하고, 진짜 지식 공유 잘해준다. 개발자 문화 좋아S2)
조언들과 내가 찾은 방법들을 정리하여 앞으로의 개발에 추가하고자한다. (Speaker이신 훈님은 이름이 기억에 남지만, 다른 분들의 닉네임은 기억나지 않아서 '짱멋'과 '존멋'님으로 ㅋ.ㅋ)
훈님의 답변 :
- 영향력 있는 포폴을 만들기 어렵다. Why? 혼자 만드는 프로젝트랑 현업은 규모가 다르다.
- 전략을 바꿔라 How? 내가 공부한것을 적용하는 서비스를 만들어라.
- 왜 이런 방식을 사용했는지 주석으로 남겨라.
짱멋님 답변 :
지지님 저 처음 취업할 때랑 비슷한 것 같아요 (이런 따스한 공감능력에 정말 감사합니다.)
그래서 면접가서 이런거 해봤냐고 물어봤던 내용들을 적용하는 식으로 준비했었던 기억이나네요
그때 추가했던 내용들은 아래와 같아여 (감사합니다.)
- HTTPS
- 비밀번호 보안을 위해 저장할 때 해시 알고리즘을 통해 암호화
- 쿠키와 세션
- 접근 제한(관리자 사이트 URL만 있으면 누구나 접속할 수 있으니 특정 로그인한 유저만 접속가능하게 하는 등)
- 삭제와 복구 => 게시글 삭제할 때 table에 있는 row를 delete했을 때 복구는 어떻게 할것인가
존멋님 답변 :
저는 처음에 좋은 api란 뭘까의 고민을 가지고 찾아봤어요 쿠팡 api추천 드려요 (증말 감사드려요ㅜㅜ)
지지 추가 :
백엔드 포폴을 만들고 있는 아래 블로그 참조!
결론 : 백엔드개발 추가 list
- 삭제와 복구
: 현재는 탈퇴/삭제하면 DELETE 된다. 복구가 필요한 경우를 대비해 DELETE가 아닌, 테이블에 사용여부를 저장하는 컬럼을 만들고 삭제 데이터의 경우 D, 사용데이터의 경우 Y 를 insert하여 복구가 필요한 상황에 관리할 수 있도록 만들것이다.
- 비밀번호 암호화
: Spring Security를 사용하여 회원정보를 관리할지, 특정 암호화 공식(?)을 사용할지 고민이었는데,, 어떤 것을 선택할지부터 고민해보고 둘중 하나를 적용해보도록 하자앗 ..!
- HTTPS
: HTTPS는 서버로 보내는 데이터를 암호화하여 관리해주어 안전성을 더해주는 프로토콜이다. 프로젝트에 적용해보자!
- @Valid 유효성 검사
: 유효성검사를 해주는 어노테이션..! 존재하는지 몰랐다. 이번기회에 공부하고 적용하자.
- Spring
: Spring에 대해 더 공부해야겠다. Spring을 공부하다보면 백엔드를 어떻게 효율적으로 설계하고 개발할지 알게될 것 같다.