[코드를 보면 사고방식이 보인다?] - 구조적 사고 한창 피드백이 난무하던 시절. 비수처럼 날아와 가슴에 꽂힌 문장이 있다. "챈들러 코드를 보면 전혀 구조적 사고가 되어있지 않아요." 난 구조적 사고가 안 되는 건가? 구조적 사고가 뭐지? 난 충분히 구조적으로 사고하는 것 같은데? 했다. 설계할 때 구조적으로 사고했고, 설계 리뷰는 ok였는데, 왜 코드에서 이런 리뷰를 받는 거지? 그럼 난 구조적 사고를 한 것인가 안 한 것인가 못 한 것인가. 혼란과 인지부조화가 왔다. 시간이 좀 흐르고 기능 추가를 위해 그때 코드를 다시 볼 때가 되자 당시 받았던 피드백을 내가 고스란히 다시 내 코드에 주고 있었다. "클래스와 함수 레벨 링이 맞지 않는다. 함수명이 이상하다. 함수명에 설명되는 것보다 더 많은 일을 하는 것 같다....등등등." 위에서 말한 것들을 한 문장으로 함축하면 '구조적 사고가 코드에 반영되어있지 않다는 것이다.' 클래스와 함수 레벨 링만 맞춰도 어느정도 구조적인 코드가 된다. '지역'이란 도메인을 예로 들자면, '도'(경기도, 경상도,..) 끼리 논리적 계산이 이루어져야 하고, '시'끼리 논리적 계산이 이루어져야 한다. 더 구체적인 예를 들어보자면, 단순히 고양시와 충청도의 인구를 비교하더라도 고양시 인구 vs 충청도 인구보다는 고양시 인구 vs 충청도의 각 도시의 인구의 총합이라고 표현하는 게 더 맞겠다. 어떻게 표현하든 코드는 돌아가겠지만, 레벨 링을 맞춰주면 당연 객체간의 구조적 레벨이 보이고, 메소드 명도 더 구체적으로 지을 수 있을 것이라는 생각이다. 즉, 구조적으로 코드를 작성하지 않더라도 코드는 돌아가고 지금 나는 알아보겠지만, 타인과 미래의 나는 이해하기 힘들겠다. 한숨 한 번 푹 쉬고, 설계를 다시 봤다. 물론 설계부터 조금 부족한 면이 있었지만, 그래도 구조적으로 사고하고 접근한 흔적이 보였다. 그런데, 코드는 영 딴판이다. 설계는 A가 했는데, 이 시스템에 대해 전혀 이해도가 없는 B가 와서 설계도만 보고 코더 C에게 설명해서 C가 이해한 대로 작성한 느낌이었다. 그래서 도대체 나는 왜 이렇게 짰는가?를 고민해봤다. 그 원인 중 하나로는 아마 코테가 있지 않을까 싶다. 코테를 준비하다 보면 의식의 흐름대로 코드를 짜게 된다. 말 그대로 자료구조와 알고리즘을 활용해서 테스트 케이스만 통과하면 된다고 생각하니까. 그리고 다른 사람들이 열광하는 해당 문제에 대한 베스트 코드를 보면, 아주 간결하고 짧게 짜져있었다. 본인이 취업을 준비하던 시기는 약 2020년으로, 당시 n사에서 하는 부스트 캠프도 같이하고 있었다. 매일 미션을 수행하는 방식이었는데, 그때도 코드를 간략하게, 누구보다 함축적이고 누구보다 짧게 짜는 것이 '간지'라고 생각했다. 왜 그게 '간지'라고 생각했는지는 모르겠다. 아무튼 이러한 경험을 바탕으로 입사했을 때 내가 코드리뷰 때나 시니어에게 바랐던 것은 화려한 코딩 스킬이었다. 200줄이 되더라도 누구나 알아보기 쉬운 코드가 3줄짜리 화려한 코드보다 의미있다는 것을 깨달은 것은 슬슬 다른 사람들이 내 코드에 대해 질문을 하기 시작할 때다. 그러다보면 아 이게 좋은게 아니구나 하고 풀어쓰기 시작한다. 그러나 내가 짠 코드라고는 나 혼자 프로젝트와 코테 시절의 코드뿐이기 때문에 내용을 풀어서 의식의 흐름대로 작성하는 정도였다. 정리하자면, 누군가 나의 코드에서 구조적 사고를 지적하기 전까지는 구조적 사고를 코드로 풀어내는 연습을 한 번도 해본 적이 없던 것 같다. 그래서 예전에 나의 코드에 구조적 사고가 보이지 않았던 게 아닐까? p.s. 인턴이나 주니어의 코드를 보며, 도대체 얘는 무슨 생각을 갖고 코드를 치는 거지? 귀찮은 건가? 라고 생각하기 전에 그들을 이해해보면 어디서부터 어떻게 도움을 줘야할지 감이 잡히지 않을까? 하는 생각에 남겨본다.

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2022년 9월 3일 오전 1:22

 • 

저장 21조회 2,766

댓글 0

    함께 읽은 게시물

    개발자의 코드리뷰는 상명하복이 아니다.

    면접관으로 들어가면 꼭 하는 질문들이 여러 개가 있다.

    ... 더 보기

    조회 225


    2025 쿠팡이츠 테크 신입 개발자 공개 채용

    ... 더 보기

    2025 쿠팡이츠 테크 신입 개발자 공개 채용

    Coupang Careers

    2025 쿠팡이츠 테크 신입 개발자 공개 채용

    하나부터 열까지 리더가 상세히 설명해 주기를 바라는 구성원이 있습니다. 반대로 큰 얼개만 듣고 나머지는 자율적으로 하고 싶어 하는 경우도 있죠. 회식에 참여하는 것을 너무나 힘겨워 하는 구성원이 있는 반면, 동료들과 함께 시간을 보내며 가까워지는 것을 원하는 구성원도 있습니다.

    ... 더 보기

    다양한 구성원을 하나로 모으고 싶다면 - 리더가 가져야 할 모순

    네이버 블로그 | HSG 휴먼솔루션그룹

    다양한 구성원을 하나로 모으고 싶다면 - 리더가 가져야 할 모순

     • 

    저장 5 • 조회 637


    AI(LLM) 애플리케이션의 발전 속도가 AI 지능(능력)의 발전 속도를 따라가지 못하고 있는 상태가 되었다. 즉, 이제 AI가 부족한 것이 문제가 아니라, AI의 능력을 100% 활용하지 못하고 있는 것이 문제인 상태가 되었다는 이야기.


    나는 가끔 조합형 한글의 아름다움에 대해 생각한다.


    그 아름다움은 단순히 예쁜 글꼴이나 정갈한 종이 위의 자소 배열에서 끝나지 않는다. 진짜 매력은, 정밀한 정보 구조와 이산 수학적 규칙성 속에 숨어 있다.


    ... 더 보기

    [광고] 다음 직무 채용 예정입니다.


    - 프러덕트/사업 기획 1인

    - 프러덕트 디자인 1인

    ... 더 보기