히히잘부탁해용
77
2018-10-07 17:37:01
26
1144

프로그램 순서도가 꼭 필요할까요!?


안녕하세요~

2개월정도의 초보인지라... 이런 질문을 드리게되네용..

선생님께서 프로그램 순서도를 그리는 것을

강조 또 강조하십니다.

하지만 순서도를 그리는데 시간도 엄청 걸리고...

그리고 나서도, 조금만 복잡해지면 가독성이 떨어지는 것 같아요.

현업에서 순서도가 꼭 필요할까요!?


만약에 필요하다면, 순서도를 공부할만한 사이트를 아신다면 부탁드립니다....

언제나 좋은 하루되십시오 ^^!!


3
1
  • 댓글 26

  • 학생입니다만
    10
    2018-10-07 18:14:03 작성 2018-10-07 18:20:32 수정됨

    개인적인 소견으로는 간단한 프로그램인 경우, 주석 처리만 잘 해둬도 순서도 없이 충분히 개발은 가능합니다. 다만, 어느정도 이상의 프로그램 동작 원리를 잘 이해하고 있어야 하긴 합니다.

    기능이 다양해지고 복잡해지는 경우, 세부 레벨단까지 전부 작성하기에는 말씀하신 것처럼 작성하는데, 시간이 많이 들어가고 투자한 시간 대비 얻는 효율이 좀 떨어지기에 탑-다운 형식으로 큰 틀에 대한 순서도를 먼저 작성하고 하위 단계에 대해 기초가 되는 순서도까지만 작성해두는 편이 좋았던걸로 기억합니다.

    그 이하는 프로젝트 진행에 따라 세부 내용이 잦게 바뀌므로 상황에 맞춰 유연하게 대처하는 편이, 스트레스도 좀 덜 받고 나았었습니다.

    저도 경력이 그리 길지 않지만, 경험했었고 고민 했었던 부분이라 몇자 남겨봅니다 ㅎㅎ.


    + 추가적으로 몇자 더 남겨보자면

    순서도를 잘 정리해서 문서화 해두면 추후 담당자가 바뀌게 되었을 때, 부담이 좀 덜해질 수 있고 협업 또는 분담 작업 시 큰 설계도가 있는 부분이라 일 진행을 조금이나마 수월하게 할 수도 있습니다. (사실 이 부분은 문서화가 충분히 잘 된 경우 지니게 되는 기본 이점 중 하나지만요.)

    2
  • fender
    11k
    2018-10-07 18:37:36

    전 기본적으로 순서도가 프로그램을 파악하는데 적절한 문서화/추상화 수단이 아니라고 생각합니다.

    물론 간단한 조건문이나 제어문을 절차적으로 늘어놓은 코드는 순서도로 도식화하기 좋지만, 예컨대 여러 컴포넌트의 상호작용의 흐름이나 상속 관계 등은 코드 파악을 위한 훨씬 중요한 정보 임에도 순서도로 표현하기 어렵습니다.

    다만, 글쓴분이 프로그래밍을 배운지 2 개월 남짓이고, 개발을 지도하는 분의 의견이 그렇다면, 어쩌면 단순히 교육 목적으로 강조한 것이 아닌가 싶기도 합니다.

    3
  • 우헤헤
    195
    2018-10-07 20:40:23

    raptor라는 프로그램이 있는데 순서도는 물론 코딩까지 입력 가능해서 간단한 프로그램 시뮬레이션 하기 편합니다. 객체지향 모드도 지원하네요

    1
  • 협군
    4k
    2018-10-07 23:23:35

    저는 필요하다는 주의입니다. 논리를 모르고 어떻게 개발합니까? 

    필요없다고 할 정도로 머리 속에서 모든게 가능한 사람은 그런 고민도 안할테니까요.

    1
  • YellowERD
    145
    2018-10-08 00:08:54

    순서도면 아주 단순한 if else 까지 들어있는 flow chart 를 말씀하시는 거겠지요?

    실무에선 flow chart 까지는 사용하진 않습니다. 화면구성도와 uml, 클래스 명세 등으로 협업 하지요.

    말로 설명하기도 애매한 복잡한데 구성도,uml 등 간략표현으로 이해시키기 어려운 부분은 짧게 flow chart 를 사용하기도 합니다. 

    1
  • 앙앙이
    3k
    2018-10-08 08:22:32 작성 2018-10-08 08:24:05 수정됨
    저를 가르친  교수님께서는
    모든것  구체적 설계는 어려우니 복잡한것 정도에
    적용하라 하셨는데
    시간이 지나서도 덧붙일 말 없고 덜어낼 말도 없네요.

    다만 구체적 설계도는 순서도처럼 답이 정해진것은
    아니라고 말씀드립니다. 구조도 일수 있고
    UML의 시퀀스 다이어그램일수 있고
    도형이 추가된 알고리즘 기술일수도 있고
    구현을 이해하기위한 시각적 도구라 그때 그때 다릅니다.
    1
  • 쯔르짜자짱
    8
    2018-10-08 08:31:41 작성 2018-10-08 08:32:22 수정됨

    디테일하진않아도 간단한 플로우는 필요합니다.


    현장에서 App 설계시 서로 계획했던 내용이 바뀔때, 영향도 분석할때도 도움이되고,


    한번 정리해놓고 오랜시간 안보다, 다시 볼떄도 금방 머릿속에 들어와요.



    물론 혼자 작업하는 프로그램 개발인경우는 굳히 작업은 안합니다.

    1
  • 히히잘부탁해용
    77
    2018-10-08 09:09:58

    학생입니다만님. 상세한 답변 감사합니다. 

    많은 도움이 되었습니다.일단 순서도는 큰 틀을 잡는 선에서 사용해보려고 합니다 ^^!!


    0
  • 히히잘부탁해용
    77
    2018-10-08 09:11:24

    fender 님. 답변 감사합니다.


    맞습니다. 우리 선생님께서는 교육 목적으로 사용하시려고 하는 것 같습니다.

    선생님께서 늘 하시는 말이, 자신이 학생이었을때 순서도 그리는 연습을 했으면,

    훨씬 좋은 프로그래머가 됐을 거라고 입버릇 처럼 말하시더라구요.

    0
  • 히히잘부탁해용
    77
    2018-10-08 09:12:53

    우헤헤님 'raptor' 라는 프로그램 꼭 이용해보겠습니다.

    추천 정말 감사합니다.!!

    0
  • 히히잘부탁해용
    77
    2018-10-08 09:13:58

    협군님.

    맞는 말씀이십니다. 논리가 정말 중요한데요....

    열심히 다듬어야겠습니다.

    0
  • 히히잘부탁해용
    77
    2018-10-08 09:14:49

    yellowERD님 답변 감사합니다.

    실무용어를 사용해주셔서 공부에 도움이 많이 되었습니다.!!

    0
  • 히히잘부탁해용
    77
    2018-10-08 09:16:16

    앙앙이님 답변 감사합니다!

    저도 경력이 쌓이다보면 언젠간 이해가 될 날이 오겠지요..?!

    0
  • 히히잘부탁해용
    77
    2018-10-08 09:17:13

    쯔르짜자짱님 답변감사합니다.!

    협업에 중요하다는 말씀이시지요? 

    새겨들어야겠습니다.

    0
  • 애옹이
    237
    2018-10-08 09:48:08

    순서도나 의사 코드처럼 알고리즘이나 로직을 추상화 하여 그릴 수 있는 수단은 매우 중요하다고 생각합니다. 

    남들과 같이 일을 한다고 하면 어떤 코드를 짜야 할 지 보여줄 수단이 필요하니까요.

    0
  • 히히잘부탁해용
    77
    2018-10-09 01:52:19

    @애옹이님

    맞습니다!

    저는 직장에들어가고 싶기때문에

    꼭익혀야겠습니당!!

    0
  • 원숭이부대
    200
    2018-10-09 12:27:52 작성 2018-10-09 12:32:53 수정됨

    있어야 한다고 생각합니다.

    하지만 경우에 따라서는 없어도 됩니다.


    클린 코드라면 없어도 되구요. 코드가 곧 순서니까요. 

    드럽게 짜면 있어도 힘듭니다.


    하지만 규모가 클수록 이런 순서도는 많은 도움이 되죠.


    순서도랑 직접적인 관련은 없지만, 문서화를 한다는 관점에서

    문서화를 하지않는 개발자들이랑 일하면 짜증나는게,

    DB나 클래스에 특정 값에 대한 식별자로 코드 값을 넣는 경우는 반드시 문서화를 해야합니다. 안되면 주석이라도 남겨 놔야합니다.

    특히 값을 1 2 3 4  혹은 DD   AA   AB  이런 식으로 넣어놓고 문서도 없으면 개짜증나죠..


    컬럼도 A B C 가 있는데 각각 000인 경우는 무슨 경우 001인 경우는 무슨 경우 002인 경우는 무슨 경우

    이따구로 해놓으면 진짜 짜증납니다.. 특히 문서도 없고.. 이짓 해놓은 놈은 퇴사했으면 못한다고 해도 할말없죠.

    1
  • 자바개발자아님
    186
    2018-10-11 14:29:29

    순서도 정도로 그릴수 있는 프로젝트는 연습문제 수준을 벗어나기 힘들테니 실무에서는 거의 불필요할겁니다.

    다만, 저는 공부할때는 필요하다는 입장인데, 이게 어떤 로직을 작성할때 생각하기가 편해집니다.

    어떤 기능을 개발할때 머릿속으로 생각할수 있는 단순한게 아닌 경우에는 연습장에 그려가면서 생각하면 도움이 되곤하죠. 그럴때 간단하게 그려보곤합니다. 

    논리적으로 생각하면서 그리고, 그걸 그대로 코드로 옮기면 되니까요.




    0
  • 히히잘부탁해용
    77
    2018-10-11 19:14:02

    @원숭이부대님


    제가 생각해도 그런 사람이랑 일하면 정말 화날 것 같아요!

    순서도를 공부하면서 남을 배려하는 개발자가 되도록 노력하겠습니다. !! ^0^

    0
  • 히히잘부탁해용
    77
    2018-10-11 19:16:12

    @자바개발자아님님


    답변 감사합니다!! 공부를 할때 꼭 이용하도록 노력하겠습니다.

    0
  • 근원으로
    240
    2018-10-12 16:04:25

    코드를 나타내는 수준의 순서도는 아니지만 비즈니스 로직 수준의 순서도는 필요하다고 생각됩니다. (정형화 된 형식은 없고 남들이 대략 알아보는 수준에서)

    저같은 경우는 먼저 중요하고 굵직한 부분 위주로 기능의 동작 순서를 쭉 그려보고 문제가 될 부분이 없는지 생각해본 뒤 각 부분을 모듈화하여 나눕니다.

    그런 뒤 실제 함수 단위로 코딩 하는 시점에 주석을 순서대로 달고 마지막에 기계적으로 코딩 하며 리팩토링 합니다.

    0
  • 메로메로
    72
    2018-10-14 16:41:19

    업무적인 측면에서 의사전달을 명확하게 할 수 있을 때 플로우차트를 사용합니다. 하지만 언어적으로 간단하게 설명할 수 있는 부분까지 플로우차트를 구성하진 않습니다.

    개인적인 측면에서는 복잡한 로직을 만들 때에는 반드시 플로우 차트를 그립니다. 플로우차트의 목적성은 어디까지나 방향성을 잡기 위한 수단으로 사용합니다. 그리고 각각의 로직에 대해서 집중합니다. 로직을 짜기 위한 하나의 방법/수단으로써 사용하기 좋다는 입장입니다.


    그래서 한마디로 요약하면 적절할 때 사용하는 것이 좋다고 생각합니다. 사용 여부는 상대적인 부분이라서 맞다 틀리다고 말하긴 어려울 것 같습니다.

    0
  • jja
    1k
    2018-10-14 20:14:48

    업무흐름도를 작성하는 편입니다. 

    특정 업무에서 업무의 처리자 및 순서가 안보이죠..

    특히 외부연계나 배치, 데몬, 오프라인 등으로 처리되는 경우 식별이 어렵습니다..

    단순 if else같은 걸 나누는것이 순서도의 역할은 아닙니다. 하기 싫은 사람들의 핑계수단입니다...

    0
  • 히히잘부탁해용
    77
    2018-10-15 08:59:08

    @근원으로님


    굵직한 것부터 순서를 짜놓고, 부분 부분의 공정에 필요한 기능을 세부적으로

    모듈화 하신다는 말씀이시죠?

    저도 오늘 그렇게 적용해보겠습니다.

    감사합니당

    0
  • 히히잘부탁해용
    77
    2018-10-15 09:10:32

    @메로메로님 답변 감사합니다.

    로우차트의 목적성은 어디까지나 방향성을 잡기 위한 수단으로 사용합니다.'

    라는 말이 인상적입니다!

    새겨듣겠습니다~ ~

    0
  • 히히잘부탁해용
    77
    2018-10-15 09:12:31

    @jja 님 답변감사합니다.


    솔직히 작성하는데... 시간도 들고 하기가 싫지만 

    열심히 해보겠습니다.

    0
  • 로그인을 하시면 댓글을 등록할 수 있습니다.