포트폴리오를 총 3개정도 준비하려 합니다.
- 바닐라 js
- 리액트+ts
- MERN스택 스트리밍 사이트
여기서 1번 바닐라 js포트폴리오를 노션 클론 과제로 담고 싶은데, 계속 리팩토링 한다면 충분히 포트 폴리오로 활용할 수 있는지 궁금합니다.
(예상하는 리팩토링 수준은 생성자함수 방식을 클래스로 바꾸고, 겹치는기능 추상화 및 낙관적 업데이트, contentEditable 기능 등 추가 정도 입니다)
두번째 질문은 설계에 대해서입니다!
비전공자이기에 소프트웨어 설계 관련 과목을 수강한 적이 없습니다. 따로 강의를 찾아서 들어본적도 없습니다.
혹시 멘토님께서는 설계에 대한 실력을 어떻게 키우셨는지 궁금합니다!
추천해주실만한 책이나 강의가 있으면 적극 추천 부탁드립니다!
답변
- 그럼요. 노션프로젝트는 충분히 활용할만합니다.
사용하다가 필요해보이겠는데?싶으면 기능을 더 추가해도좋구요.
노션 디자인을 그대로 차용해서 베껴보면 CSS공부도하게되고, 프로젝트 보는사람도 그럴싸하게 볼수있겠어요!
- 설계라니.. 굉장히 추상적이군요.. 어려운 질문입니다 ㅎㅎ 다양한 소프트웨어 설계가 있을수있죠. 리눅스나 윈도우같은 OS를 구현해볼때 필요한 설계가 있을수있구요. 우리가 사용하는 웹 애플리케이션의 설계가 있을수있구요. 한편으로는 우리의 애플리케이션의 목적이 쇼핑몰을 만드는것일수도 있구요, 메신저, 병원에서 엑스레이나 mri와같은 대용량 이미지 처리 애플리케이션, 배달앱, 은행앱을 만드는것일수도있습니다. 그리고 우리 팀이나 회사가 처한 상황이 지금 당장 1천명의 유저를 끌어모으기위함일수도 있구요, 하루 1000만명을 받아내는 시스템이 하루 5000만명, 1억명을 받아낼수있도록 변경하려는 것일수도 있구요! 너무나 무궁무진한 상황이 주어지기때문에 사실 설계에 정답은 없습니다. 도메인에대한 이해가 수반되어야할거고요. 코딩스킬도 많이 쌓아놔야합니다. 올바른 언어를 선택할수있는 지식, 자료구조와 알고리즘, 디자인패턴 등등 개발자의 소프트스킬, 하드스킬을 모두 키워야겠죠? 이처럼 뛰어난 개발자가 되기위해서는 지력과 무력을 겸비하셔야합니다. 설계에서 시작해서 결국 일장연설이 되어버렸는데요.. 지금은 개발자 하드스킬을 키워보는걸 추천드립니다. 어느회사에갈지모르니 도메인지식을 쌓을수는없자나요.ㅎㅎ 소프트웨어 아키텍쳐가 아닌, 더 작은 수준인 코드레벨의 설계가 궁금하신거라면요. 내가 사진앱을 만들어보려고하는데, 어떤 방법으로 구현해볼까? 어떤 전략을 사용할까? 싶을때는 디자인패턴보시면서 적용해보는것도 좋겠구요. 프론트엔드 웹 애플리케이션에서는 어떤 패턴을 많이 사용할까? 한번 검색해보세요!