최근에 개발하면서 느낀점
오늘은 특정 기술에대한 기록이아닌 개인적인 이야기를 적어보려고합니다.
현재 다니는 회사에 입사하고 6개월간 두개의 프로젝트를 진행하였고 , 두번째 프로젝트를 마치면서 느낀점을 적어보려합니다.
저희는 기획자에게 제안서를 받은 후 기능 위주로 파트를 나눠서 진행하였습니다. (참고로 저희는 spring 개발자가 둘입니다. 따로 프론트 백엔드 나누지않고 기능별로 파트를 나눠서 진행합니다. )
그렇게 파트를 나눈후 그 안에서 기능을 나눈 후 각자 설계를 한 후 개발에 들어갑니다
A 기능, B기능 ,C기능 처음 머리에 그리고 설계한대로 개발을 잘 하고 있습니다.
그런데 개발을 진행하다보면 기획이 자주 변경됩니다.
A 기능이 빠지고 D기능이 들어가고 D기능을 쓸때는 이런저런 조건이 붙었다가 , 없어졋다 , 그리고 다시 D기능 뒤에 A기능이 들어가고 ..
어딜가나 이런 상황을 있겟죠 .. 그런데 문제는 개발하고 한참뒤에 그 기능을 변경하고 .. 또 바꾸고 바꾸고 하다보면 코드는 꼬이고 기억은 나지않고 하는 문제가 발생합니다. 그래두 꾸역꾸역 완성해 나갔습니다.
근데 진짜 문제는 배포하기전 테스트 기간이였습니다. 전체 테스트를 진행하면서 여러 에러가 발생했고 , 그부분을 고치면 또 다른부분이 에러가 발생하고 , 또 고치면 또, ,,,다른부분에 에러가 발생할까 걱정이됫습니다.
옛날에 혼자 개발공부할땐 이러지 않았는데 , 협업도하고 , 기획도 바뀌고 , 정신없이 개발하다보니 이렇게 중구난방으로 에러가 발생하고 , 꼬리에 꼬리를 무는것같습니다. ㅋㅋㅋ 내가 꼼꼼하지못해서그런가 ? 이런생각도 많이들고 , 이렇게 에러가 발생해서야 회사에 신뢰를 주지 못하는 개발자가 되는것같았습니다.
그래서 세번쨰 프로젝트부터는 두가지를 해보려고 합니다.
1. logic flow 그리기
2. junit 공부하기
1. logic flow를 그리는이유는 좀더 꼼꼼한 설계를 하는 것과 문서로 기록하여 유지보수/인수인계가 가능한 점 , 그리고 추가 기능 요청 / 수정 시 에러를 줄일수 있을 방법이라 생각합니다. ( 일단 제가입사할땐 인수인계문서가 없었습니다^^;;)
아직 시작단계라 그리는 시간도 오래걸리고 잘하고 있는지는 모르겠지만 하다보니 개발이 좀더 수월해 지는 기분이 들었습니다(옛날에는 이런거 없이 1시간 개발해서 만들 기능이라면 , 이제는 1시간 그림그리고 , 30분 개발해서 만드는 ??)
아래에 플로우가 처음으로 그린 것입니다. url을 입력하는 input tag가 하나있는데 거기에 url을 넣엇을떄 조건에따라 다르게 동작하는 플로우입니다.
같이 공부한 친구들한테도 이런거 만드냐고 물어보니까 역시 잘하는애들은 알아서 혼자 만들고 있더라고요
저는 그냥 손에 익숙한 ppt로 만드는데 , 다른 분들보니까 이런거 쉽게 할수있는 툴도 있었습니다.
Figma: the collaborative interface design tool.
Build better products as a team. Design, prototype, and gather feedback all in one place with Figma.
www.figma.com
https://www.websequencediagrams.com/
WebSequenceDiagrams - Draw sequence diagrams online in seconds
www.websequencediagrams.com
저처럼 이런걸 만들지 / 안만들지는 자유지만 저같이 기억력 나쁜사람한테는 꼭필요한것같습니다.
2. Junit은 단위테스트가 가능한 기능이라고 하는데 아직 정확한 기능은 모릅니다. 내일부터 인강하나 듣으면서 진행해보려고요. 다음글부터는 Junit 인강듣으면서 공부한 부분을 적도록 하겠습니다.