기획&설계 - 시스템 설계를 위한 기획, 기획과 설계는 밀접한 관계가 있다.


 

오늘은 저만의 생각일지도 모르겠지만, 이런 주제를 들고와봤습니다.

 - 시스템 설계를 위한 기획, 기획과 설계는 밀접한 관계가 있다.

 

저는 몇년간 여러 프로젝트를 진행하면서, 그 프로젝트들 사이에서 주로 개발을, 때로는 설계를 진행해보기도 했는데요,
(어떤때는 혼자 프로젝트를 진행하며 모든걸 해보기도 하고..)

경험속에서 어떠한 상황이 있었고, 이러한 경우에는 어떤 방식을 택해 해결을 해볼 수 있는지 고민해보고자 글을 작성해봅니다!


보통 요즘의 기업들이 에자일 방식(소프트웨어 개발론으로 생각해보자면)을 택하고 있는 이상 기존의 요구사항을 토대로 프로토타입성의 결과물을 만들어내고 이후 추가적인 요구사항을 받아 보완해나아가는 형식을 취하고 있습니다.

 

에자일 방식은 그만큼 유저가 필요한 기능을 파악하고 검토 그리고 다시 수정을 하기 위한 프로젝트에서 가장 적합한 프로세스이기는 하지만, 문제는 이 에자일 방식에서의 설계 방식에 많은 어려움을 겪기도 합니다.

(에자일방식이라고 해서 설계자료 없이 개발을 할 순 없으니 말이죠.) 

 

시스템 개발이라는건 상황에 따라서는 기존 개발방식을 깨고 새로운 개발방식이 필요한 경우가 있습니다.

이러한 경우는 기존 요구사항에서 새로운 요구사항으로 변경되면서 어쩔수없이 시스템의 구조가 변경되어야하는 경우인데,

이런 경우에는 개발자들은 리팩토링이나, 그냥 새로 개발하는 경우가 종종 발생하곤 합니다. (그냥 새로 만드는게 더 빠른 경우)

큰 문제는 리팩토링이 되었건, 새로 만드는 만드는 경우가 되었건 시간적, 인력적 코스트는 엄청나게 들곤 하죠..(결국엔 Money!)

 

그렇다면 설계자는 이러한 경우를 피하기 위해서는 어떻게 해야할까요?

기획의 명확한 의도를 파악하고(요구사항을 정확히 파악), 그 의도에서 새로 생길 수 있는 수정사항을 미리 고려하는 것입니다.

말이 어려울 수 있으니, 쉽게 설명해보자면.. 흠..

기획단계에서 나온 모든 요구사항을 전부 고려를 하는겁니다.

더 쉽게 말하면 확장성을 모두 고려해서 설계를 해야한다는 말이 가장 와닿을 수 있겠네요.

 

물론, 그 모든 요구사항을 충족할만한 시스템은 만들기 어렵겠지만,

확장성을 고려한 한번의 설계로 나중에도 문제 없이 개발을 진행할 수 있는 견고한 시스템(확장성이 쉬운)이 만들어진다면

개발자에게 있어서는 너무 감사하게도 나중에 생성될 야근시간이(시간적 코스트) 줄어들테고,

투입될 인력적인 부분(인력적 코스트)에 있어서도 많은 최적화를 이뤄낼 수 있을겁니다.

 

여기서 중요한건 설계뿐만이 아니라는 겁니다.

당연하게도 기획자는 기획의 의도를 명확히 해야할 필요가 있으며,

그 기획의 의도속에서도 추가적인 아이디어가 있다면 미리미리 첨언해준다면(그냥 툭 튀어나온 반영하지 않을 요구사항도 따로 정리해서) 설계에 있어 미리 확장성을 고려할 여지를 남겨두게 된다는 겁니다.

여기서 제 경험상으론 단순 아이디어(그냥 툭 내뱉은 아이디어)는 결코 단순 아이디어가 아닙니다.

그저 후보군으로 나왔었던 아이디어더라도, 추후 어떠한 결과로 다시 구현하게 될 지 모르는 암흑속의 존재(?)일지 모르기 때문에

기획자는 번거롭겠지만, 추후에 확장이 될 여지가 단 0.0000001%라도 있다면 설계자에게 어떠한 상황으로든 알려주는 것이 좋습니다.

 

이런 면에 있어서 저는 보통 기획부분과 설계부분을 엮어서 생각하는 경우가 있는데요,

보통 기획단에서 사용하는 Wireframe을 저는 개발하기에 좀 더 편한 저만의 Wireframe으로 조금 변형을 해서 쓰곤 합니다.

이러한 이유는 기획자의 의도가 개발단으로 넘어가면서 변질되지 않는것을 추구하기 때문이기는 하는데..

사실 개발자(저)의 시선으로 보면 기획 단의 Wireframe은 개발에 참고하기 위한 부분이 많이 부족하다고 느껴집니다. (구체적일수록 좋은데 말이죠..)

화면설계서라는 설계문서가 중간에 들어가기는 하지만, 이러한 화면설계서에서도 단순히 Wireframe과 요구사항만 보고 설계문서를 만들어내기란 쉽지 않기에 사람이 보기 편한 이미지적인 요소인 Wireframe을 좀 더 개발자에게도 확 와닿는 하나의 개발문서가 되었으면 좋겠다는 생각으로 커스텀을 해보게 되었습니다. (제가 본 블로그에 작성한 Wireframe에 관한 내용도 있으니, 하단의 링크를 통해 구경해보셔도 좋을 것 같습니다.)

 

 -> Wireframe 참고

 

Wireframe - 백문이 불여일견

Wireframe - 백문이 불여일견 깔끔하게 휴식을 마치고 와서 그런지 그나마 머리가 말끔해져서 오늘은 Wireframe을 소개해볼까 합니다. (?! 갑자기 ?!) 사실 제가 쓰는 이런 설계단의 문서들은 어려워하

karzin.tistory.com

 

물론 해당 게시글은 개인적인 감상, 견해가 듬뿍듬뿍 들어가 있으므로, 다른분들은 어떠한 생각이실지 궁금하기는 합니다. 그냥 이런 생각을 하는 사람도 있구나 생각을...ㅋ...

(좋은 글, 좋은 생각이 있으시다면 댓글 달아주세요! 저도 많이 배우고, 또 배워야합니다 ㅠㅠ)

이렇듯 기획과 설계는 거의 한몸(??)이 되어 서로의 생각을 아낌없이(???) 나눠야하며,

최소한의 코스트로 최대한의 완성도가 높은 결과물을 뽑는게 최고의 협업 환경이 아닐까 생각이 듭니다.

 

버전정보 (v1.0)

 - v1.0 2021.01.02 배포

 

* 저작권에 위반될 수 있는 컨텐츠(이미지, 동영상 등)나 게시글은 삭제되거나 수정될 수 있습니다.

* 문제의 여지가 될 수 있는 컨텐츠의 경우 댓글 달아 주시면 빠른 시일 내에 조치하도록 하겠습니다.

* Karzin은 항상 공부중입니다. 설명이 틀리거나 잘못된 부분이 있다면 의견내주시는대로 수정하도록 하겠습니다.

 

Karzin

abbeea@naver.com


[20210101] 잘가! 2020! 그리고 어서와~ 2021~


오늘은 작년의 나를, 그리고 올해부터의 나를 생각하면서 자유롭게 작성해볼까 합니다. 😃

(그도 그럴게 새해니까! 새로운 마음으로!!)

 

 

2020년,

작년은 정말 바쁘기도 하고, 코로나로 인해 슬프면서도 힘든 시기였기도 했네요. 
2021년은
모두가 행복하고 웃을 수 있는 한 해가 되었으면 좋겠습니다!

 

모두 화이팅입니다!!! 

 


 

2020년, 나는 무엇을 했을까? (2020 기억에 남는 이벤트들)

 - 이전 직장, 같은 일상의 반복.. (잠 -> 출근 -> 업무 -> 밥 -> 업무 -> 퇴근 -> 밥 -> 업무 -> 잠)

  -> 2020년 연 초부터 2019년의 업무에 치여 계속해서 업무를 진행했었죠. 회사가 바쁜만큼 제할일은 확실하게 하자는 생각으로 진짜 열심히 했던 것 같습니다. (회사와 병행했던 대학원 생활에는 4시간 정도 취침했는데, 이때는 2~3시간정도 취침하면서 작업했었네요.ㅋ..)

  -> 업무는 주로 무얼했느냐? 라고 물으신다면! 낮에는 코딩을, 유지보수팀과 연락을, 회의를, 그리고 밤에는 앞으로 개발될 시스템의 설계자료 작성(ppt 및 워드작업) 그리고 개발이 된 시스템의 완성(수정)된 설계자료의 수정작업을 진행했습니다. (그때당시 인원은 적지만, 업무의 양이 많아 한사람이 어지간한 작업은 해낼 수 있는 상태여야했어서..)

  -> 사실 이게 가능했던건 군대에서 행정병으로 문서작업을 많이 했었고, 군대에서도 기계처럼 밤샘작업을 자주했었기 때문에 가능했던거라고 생각하고 있어요. ㅋㅋ (반쯤 자면서 문서작업하는 느낌?ㅋㅋㅋ)

 

 - 마스크를 벗을 수 없는 시기의 도래

  -> 작년에도 저는 친구들과 해외 여행을 위한 준비를 했었습니다.

  -> 만.. 예정같았다면 작년에도 일본을 한번 방문할 예정이었지만, 상황이 상황이라 결국 작년은 포기를 했었죠.

  -> 특히 이 시기가 길어지면서 회사->집의 반복된 일상이 더 심해졌고, 업무의 분량도 그만큼 더 가중이 되었던 한해였던 것 같아요.

  -> 정말.. 다들 힘드시겠지만, 화이팅 하시기바랍니다! 함께 힘내시죠!!

 

 - 다원 프로젝트의 재실행

  -> 저는 개발에 있어 많은걸 경험해봐야한다는 생각을 많이 가지고 있습니다. 그도 그럴게 학생들에게 블럭코딩을 가르치는 봉사활동을 하면서 기술만 판다고해서는 보이지 않는게 너무나도 많다는것을 깨닳았어요. 아이들의 순수함속에서도 배우는 코딩이 있었고, 더 단순하고, 그 아이들처럼 더 즐기면서 코딩할줄 아는 마음이 최고이니까요! 그래서 이전부터 관심이 많던 기획, 분석, 설계, 디자인, 개발, 유지보수, 이후에는 마케팅 등 안목을 넓히고 더 넓어진 눈으로 더 큰 프로젝트를 볼 수 있는 힘을 가지는게 좋다는 생각을 많이 했습니다. 그래서 저는 다원 프로젝트가 그에 딱 걸맞는 프로젝트이고, 제 개인을 좀 더 키울수 있는 프로젝트로 자리잡을 수 있으면 좋겠다 싶어 다시 실행했습니다.

  -> 물론 바쁘고 힘들었지만, 바쁜 업무의 일상속에서도 자신의 꿈을, 되고 싶었던 자신의 미래를 위해 다원 프로젝트를 진행했습니다.

  -> 결국 바쁘다는건 핑계거리밖에 안되니까, 조금씩이라도 해보자는 생각으로 임했었습니다.

  -> 그러다 시간을 쪼개고 쪼개도 많아진 업무량과, 이직으로 인해(적응기간) 현재는 잠시 정지상태가 되어버렸지만..(ㅠㅠ) 다시금 재시작하려고 합니다. (우선은 서버부터 구축을 하도록 해야지요!)

 

 - 새로운 회사로의 이직 & 이사

  -> 같은 일상의 반복속에서 저는 조금씩 지치면서도, 나의 앞으로를 생각하게 된 것 같아요.

  -> 사실 기회가 되면 일본의 대학을 다니고 싶다는 (유학) 생각을 했었는데, 코로나로 인해 여러 계획이 꼬이면서 결국 여러가지를 포기하고 있었었습니다.

  -> 계획이 많이 틀어지면서 좀 더 다른 길을 찾아보게 되다가 저는 지금의 직장과 연이 닿아서 그곳에서 다시금 부족하지만 저의 자리를 만들어 나아가고 있습니다.

  -> 코로나가 많이 심각해지면서 재택근무가 늘어졌지만, 그 속에서도 조금이라도 팀에 도움이 되기 위해 항상 노력하고, 자신과 팀이 성장을 할 수 있는 상황을 계속해서 모색하고 연구해나가는 중입니다!

  -> 새로운 환경으로 옮겨지면서 바뀌게 된 것들도 많아졌습니다. (물리적인 개발환경, 소프트웨어적인 개발환경 등등)

  -> 이직과 이사로 인한 적응기간은 아직 진행중이라 생각하고 있어요!

 


2021년, 나는 무엇을 할까? (앞으로의 계획)

 - 새로운 곳에서 나의 자리, 나라는 브랜드를 만들어 나아가자.

  -> 개발자에게 있어 자신의 자리를 만들어 나아가는건 개발기술이 최고일 수 있겠지만, 개발이라는 기술외에도 분명 필요한 것은 많이 있다고 생각합니다. 그럼 개발자가 가지면 좋은 능력은 무엇일까요? 제 생각엔..

  -> 팀원들과 함께 나아갈 수 있는 리더십

  -> 새로운 기능을 제안할 수 있는 기획능력 (제안능력)

  -> UI와 UX를 분별할 줄 아는 분별 능력
  -> 함께하는 팀원들을 위한 최고의 설계 능력 & 설계를 효율적으로 전달할 문서 작성 능력

  -> 적용할 기능에 대해 적용가능함을 판단하는 판단 능력

  -> 자신이 작업할 업무에 대해 책임을 가질 책임감

  -> 서비스에 문제가 생겼을 때 최소한의 시간으로 파악할 수 있는 분석력

  -> 그리고 문제를 해결할 수 있는 해결 능력 (장애 대응 능력)
  -> 새로운 기술을 무서워하지 않고 즐길 수 있으며 기술부재에 대해 해결할 수 있는 능력 (자기 개발 능력)

  -> 분명 이외에도 더 많은 능력을 가져야겠지만, 올해는 이정도는 꼭 가져야할 업무능력이라고 생각하고 있어요. (분명 이중에는 이미 제가 가진 능력들이 있겠지만, 그 이상 수준급으로 끌어올려야 한다고 생각하고 있습니다.)

 

 - 석사로 업그레이드!

  -> 논문을 준비해야하지만, 작년에는 바쁘다는 핑계로 못했었죠..ㅠㅠ (현재 수료상태)

  -> 이제는 업그레이드를 해야한다고 생각들어요! 논문은 아직 고민중이지만, 자연어처리 관련으로 논문을 작성해보려 생각하고 있습니다. (그 이상은 고민중인 부분으로 정확히 말할 순 없습니다 ㅠㅠ)
  -> 언젠가 기회가되면 박사(유학)를 진행해보고 싶다는 생각이 있었고, 지금은 그를 위한 탄탄한 다리를 쌓고 있다고 생각하고 있습니다.

 

 - 이제는 미루지 말자 외국어 준비 & 외국으로 나갈 준비!

  -> 영어는 현지인들과 회화가 가능한 정도를, 일본어는 비즈니스 회화가 가능한 정도를 노리고 있습니다.

  -> 원래 일본의 회사에 이직을 하고 싶다는 생각도 있었는데, 이게 나중에 언젠가는 실리콘밸리에서도 인정받을 수 있는 개발자가 되어보고 싶다는 생각이 들었었고, 그 첫 시작을 일본으로 잡아보고 싶었습니다.

  -> 왜 굳이 일본이냐? 라고 물어보신다면, 아버지께서 일본에서 회사를 다니고 계셔서 어느정도 일본어를 듣고 말하는 수준으로는 가능하다고 생각하고 있고(소통의 자유도가 높아졌다고 해야하나요?), 또 가까운 이웃나라인 만큼 문화등에 있어서 그 허들이 낮지 않을까 하고 생각이 들었기 때문입니다. 그리고 무엇보다 결정타가 하나 있었는데, 일본 소프트웨어 개발 기업들의 개발을 위한 (소프트웨어 공학적인)설계 기술이 꽤 탄탄하다는 소리를 들었습니다. 이 기술들을 꼭 배우고 싶었고, 경험하고 싶어서 일본을 해외 입성의 첫 시작으로 목표를 세웠습니다.

 - 운동!

  -> 이 모든것을 하기 위해서는 기본적으로 체력이 바쳐줘야한다고 생각이 들어요!

  -> 몸이 첫번째 가장 중요한 자산이기에 운동은 필수라 생각하고 있습니다.

  -> 작년에는 자전거를 이용한 운동을 많이 했었는데, 올해부터는 새로운 환경에서 어떤 운동을 할지 고민하고 있어요!

  -> (해보고 싶은건 dancing, 춤??ㅋㅋㅋ)

 

 - 언젠가를 위한 안목 키우기

  -> 언젠가 써먹을지는 모르겠지만, 분명 어떤일이든 막히는 일이 언젠가 일어날 수 있습니다. (개발이든, 어느 무엇이든)

  -> 그를 위해서 여러가지를 볼 줄아는 안목을 계속해서 키우는게 중요하다고 생각해요.

  -> 물론 지금 하는 개발 업무를 내려놓고 다른 직군으로 이동을 한다는 의미는 아니구요, 그 업무에서 적용할 수 있는 새로운 형태의 로직을 신박하게 짜낼 수 있는 힘을 기르고 싶다는 느낌입니다 ㅋㅋ 

  -> 물론 목표가 많이 추상적이고, 어려운 느낌이 나지만, 무엇이든 부딪혀보고 몸으로 느껴보는게 최고인 것 같습니다.

  -> 기회가 온다면 무엇이든 계속해서 경험을 쌓아가는게 최고라고 생각합니다!

 - 시스템 설계를 위한 공부를 하자!

  -> 설계를 하다보면 기획에 관련된 부분을 많이 공부하게 되는 것 같아요.

  -> 어쩌면 기획과 설계와 많이 비슷한 느낌이랄까..? 그래서 자연스럽게 기획에도 관심이 가는 것 같습니다.

  -> 쉽지않은 공부이지만, 틈틈히 설계 공부를 하면서 시스템의 구조에 대해 좀 더 고민을 하고 연구할 줄 아는 자신이 되었으면 좋겠습니다.
  -> 더 나아가서 유지보수를 고려할 수 있고, 확장성을 고려할 수 있는 설계사가 되고 싶습니다.

  -> 시스템 설계가 쉽지는 않지만, 확장성을 고려하지 않고 개발을 하다보면 추후 시스템 전체를 뒤집어 엎어버리는 경우를 마주하게 될 수 있습니다. (실제로 이러한 경우를 많이 겪어보았고...)
  -> 당장을 생각하지 않고 앞을 볼 줄 아는 설계자가, 개발자가 되고싶어요!

 

 - 개발의 마법사가 되자

  -> 저는 본질적으로 개발자이기 때문에 개발자로 처점을 맞춰서 한가지 목표를 잡아본다면!

  -> 저는 항상 뚝딱하는 느낌으로 개발을 진행-완성할 수 있는 사람이 되고 싶은데요,
  -> 단순히 속도뿐의 이야기만이 아니더라도 안정성도 당연하게도 필수라고 생각하고 있습니다. (서비스가 픽픽 죽어버리면.. 참.... 이게...)

  -> 마법을 부리기위해서는 많은 노력이 필요할거고, 그 노력을 위해 오픈소스 프로젝트도 진행해볼까 하고 있습니다! (생각으로는 RN 라이브러리-Android/iOS 동시 개발진행, 작은 기업들을 위한 무료 서비스같은 것)
 

 

해야할 일들은 많지만, 천천히 천천히 하나씩 하나씩 처리해나아가 봅시다!

 


 

ㅋㅋㅋ.. 낮부터 작성한거같은데.. 목표를 너무 크게 잡은건 아닌지..

00시 되기전엔 올려야지! 했는데 11시 57분이네요! ㅋㅋㅋㅋㅋ

 

모두 새해에는 하시는일 다 잘 되시고,

복 많이많이 받으시기 바랍니다!

新年、明けましておめでとうございます!

 

 

😃😃😃😃😃😃😃

+ Recent posts