Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

develog

좋은 코드란? 본문

COMMON

좋은 코드란?

LineGu 2022. 1. 22. 15:42

내 꿈은 좋은 개발자가 되는 것이고, 좋은 개발자라면 좋은 코드를 짜야할 것이다.

하지만 좋은이란 단어는 매우 주관적이다.

나는 어떤 개발자가 되길 원하는지, 좋은 코드는 무엇일지 고민하는 과정이 담긴 글이다.

개발 공부를 시작한 후로 계속해서 이 고민을 하고 있는데, 아직 답을 모르겠다.
매번 생각이 바뀌어 그때그때 내가 생각하는 좋은 코드에 대한 기록을 해볼 예정이다.

개발자를 선택한 이유


개발자를 평생 직업으로 선택한 이유는 두가지가 있다.

  • 적은 비용으로 상상한 것을 현실로 만들 수 있다.
  • 논리적으로 작업이 이루어진다.

반도체를 전공할 당시, 교수님께 선배 중 어떤 아이디어를 내서 특허를 낸 후에, 그 아이디어를 통해 굉장히 집약적인 반도체를 만드는데 성공했고, 삼성에서 그 특허를 샀다는 이야기를 들었다.

그 때부터 내 꿈은 좋은 아이디어로 세상이 발전하는 것에 기여해서 이름을 남기는 것이었다.

하지만 반도체 분야는 아이디어가 떠올라도 높은 비용 탓에 바로 도전해볼 수 없고, 그 아이디어를 시도해보기 위해선 너무 많은 장애물을 넘어야 했다.

그러다 우연히 개발하는 친구를 통해, 코딩을 접하게 되었고 내 꿈을 실현시키기에 너무 적합한 도구라는 생각이 들었다. 이게 내가 개발자를 선택한 이유 중 첫번째다. 프로그래밍은 아무런 비용도 들지 않고 내가 상상하고 있는 걸 그대로 만들 수 있다는 것이 너무 매력적이었다.

또한, 반도체같은 경우엔 외부 환경에 영향을 많이 받아, 이상적인 상황과 현실적인 상황이 달라져 생각대로 되지 않는 경우가 너무 빈번했다. 하지만 컴퓨터는 논리적으로 접근하면 모든게 설명됐다. 예상대로 되지 않으면 무조건 내 논리가 틀렸다는 확신이 있어 오류를 잡기에 너무 편했고, 내가 같은 행동을 하면 항상 같은 피드백을 준다는 것이 너무 매력적이었다.

이 외에도 이유는 많지만, 크게 위 두가지 이유로 개발자를 평생 직업으로 선택하였다. 이 이유들을 토대로 나는 어떤 개발자가 되고 싶으며, 그렇다면 나에게 있어서 좋은 코드란 무엇인지 살펴보려고 한다.

좋은 코드란

2020.02.

이 때부터 개발 공부를 시작했다. 이 때에는 좋은 코드에 대해 고민한 기록을 해두진 않았지만, 친구와 맥주를 마시며 구두로 이야기한 기억이 있다. 친구는 약 1년정도 개발을 공부한 상태였다. 친구는 유지보수나 재활용성 등등 어려운 용어를 제시하며 좋은 코드에 대해 이야기 했지만, 당연히 하나도 못 알아들었고 나는 그냥 어려운 기능들을 제대로 동작하도록 구현한 코드가 좋온 코드라고 생각했다. 또, 버그가 최대한 없게 짠 코드가 좋은 코드라고 생각했다.

2020.05

웹 파트를 전반적으로 살펴보고, "칸반보드"를 바닐라로 만들어본 지금은

  • 명시적인 코드
  • 있어야할 곳에 있는 코드
  • 버그를 잡기 쉬운 코드
  • 이유있는 코드

위 세가지가 잘 지켜진 코드가 좋은 코드라고 생각한다. 무엇을 하는 코드인지 명확하게 명시되어 있고, 코드가 있어야할 곳에 있다면 버그가 생겨도 원인을 쉽게 찾고 쉽게 고칠 수 있다고 생각한다. 또, 무작정 구현만을 목적으로 기술을 마구 사용하고, 코드를 작성하기보단 모든 코드에 합리적인 이유가 있는 코드가 좋은 코드 같다.

2020.06

기능을 구현하는 것에 능숙해지고, 성능 최적화를 경험해보니, 좋은 코드에 대한 생각으로

  • 성능을 고려한 코드
  • 재사용성을 고려한 코드

이 두개를 추가하고 싶다. 위 두개를 고려한 코드는 한 단계 더 고민한 코드란 생각이 든다.
결론적으로는 사용자나 추후에 내 코드를 만지게 될 사람처럼 타인을 고려한 코드가 좋은 코드 같다.

2020.10

회사에서 인턴으로 약 한 달 정도 근무한 상태인 지금은,

  • 유지보수가 쉬운 코드
  • 추상화가 잘된 코드
  • 낮은 의존과 높은 응집도를 가진 코드

위 세가지를 고려한 코드가 좋은 코드라고 생각한다. 결국 이전에 작성한 내용들과 이어지는 이야기일 수도 있다. 추상화를 잘 활용해서, 복잡한 것을 생각하기 쉽게 풀어내고, 낮은 의존과 높은 응집을 고려하여 사용하는 측에서 편하게 사용할 수 있도록 짠 코드도 좋은 코드가 될 수 있다고 생각한다.

2020.11

회사에서 일하다보니, 당연하게도 비지니스 상황을 고려하게 된다. 당장 A라는 회사에서 한달 안에 특정 기능을 만들어주면, 1000만원을 준다고 한다. 위에서 고민한 좋은 코드를 지키며 개발하면 두 달이 걸리고, 그렇지 않은 경우엔 한 달만에 성공할 수 있을 때, 당연히 진행하는 것이 회사에 도움이 되는 방향일 것이다. 이 때 짠 코드는 나쁜 코드일까? 언젠가 생각이 바뀔 수도 있지만, 지금은 좋은 코드라고 생각한다. 상황을 고려하여, 닥면한 문제를 명확히 파악하고 짠 코드는 좋은 코드라고 생각한다.

2021.01

좋은 글을 하나 읽었다.
좋은 코드란 무엇인가?

개발자는 엔지니어라고 생각한다. 그렇다면 엔지니어링은 무엇일까? 위 글은 제한된 자원을 목적에 알맞게 효율적으로 사용하여 문제를 해결하는 것 이라고 표현하고 있고 나도 그렇게 생각한다.

유지보수가 쉬운 코드, 추상화, 낮은 의존성, 높은 응집도, 성능, 재사용성 등등 위에서 작성한 모든 좋은 코드의 정의 중 틀린 것은 하나도 없는 것 같다.

단지, 지금 해결해야하는 문제의 핵심이 무엇인지 명확하게 알고, 그것을 해결하기 위해서 주어진 자원으로 최대한 효율적으로 해결하는 것은 적절한 코드이며, 적절한 코드가 곧 좋은 코드인 것 같다.

현재는 주어진 자원, 문제의 핵심, 효율적인 방법을 명확히 판단할 수 있는 개발자가 좋은 개발자라고 생각한다.

'COMMON' 카테고리의 다른 글

비전공자에서 토스에 최종합격까지, 1년의 과정  (0) 2022.03.10
Comments