[컴퓨터 개론] 프로그래밍 언어 이해하기
업데이트:
좋은 코드란?
단순히 기능이 작동 한다고해서 좋은 코드가 아니다.
프로그래밍 언어를 공부할 때 그저 작동되는 코드가 아니라 어디에 중점을 두어야 하는지 공부하는 것이 중요하다.
읽기 쉬운 코드
개발자들은 코드를 통해서 컴퓨터와 소통한다. 또한, 다른 개발자와 협업하며 코드로 소통한다.
사람이 읽기 쉬운 코드를 가독성이 좋은 코드라고 한다.
가독성이 좋은 코드를 작성하기 위해서 필요한 것
- Comment
프로그래밍 코드이지만 실행에는 영향이 가지 않는 주석.(사람에게만 전하는 메시지)
너무 남발하는 것도 좋지 않지만, 어느 부분이 중요한지, 어떤 기능인지 Comment를 적어 두는 것이 좋다. - 이름 잘 짓기
변수, 함수 등에 이름을 붙여줘야 한다.
너무 일반적인 것도, 너무 구체적인 것도 좋지 않다.
전체적인 코드의 흐름 안에서 충분히 구체적이고 간결한 이름으로 짓는게 좋다.
이름을 지을 때 보통 띄어쓰기를 사용하지 못하기 때문에 대표로 3가지 표기법으로 나뉜다.
snake 표기법
: 띄어쓰기를 _로 표현(math_score)
pascal 표기법
: 각 단어의 첫 글자를 대문자로 표현(MathScore)
camel 표기법
: 두번째 단어부터 첫 글자를 대문자로 표현(mathScore)
스타일 가이드 활용하기
가독성 좋은 코드를 작성하기 위해 좋은 코멘트, 좋은 이름을 사용하는 것은 주관적일 수가 있다.
코멘트를 어느 위치에 쓰는지, 변수명을 어느 표기법을 사용해서 짓는지 정한 규칙이 있어야 더 깔끔하고, 보기가 좋아진다.
그래서 각 언어마다 스타일 가이드가 존재한다.
이름은 어떤 방식으로, 띄어쓰기는 어떤 방식으로, 코멘트는 어떤 방식으로 사용하라고 적혀있다.
스타일 가이드를 지켜서 작성하는 것이 좋은 코드이다.
인터넷에 프로그램 언어 style guide
라고 검색하면 해당 스타일 가이드가 나온다.
스타일 가이드를 지키지 않는다고 해서 오류가 발생하진 않지만 가독성 좋은 코드를 위해 스타일 가이드를 활용해야한다.
또한, 여러 사람들이 동시에 작업 할 때 생기는 혼선을 막을 수 있다.
구조화가 잘 된 코드
코드가 긴 코드를 정리하지 않으면 원하는 기능을 찾거나 수정하기 어렵기 때문에, 이 문제를 해결하기 위해 코드 분리(파일 분리)가 필요하다.
파일 분리
란 관련된 코드를 필요한 만큼 한곳에 모아두는 것을 말한다.
하나를 고칠 때 여러 파일을 찾아보지 않기 위해서이다.
여러 사람이 협업을 하다 보면 한 사람이 만든 함수를 다른 사람이 사용할 때가 많다.
하지만 본인이 만든 코드가 아니기 때문에 적절하지 않은 곳에서 사용하는 경우 등 고질적인 문제들이 많이 발생한다.
이 문제들을 해결하기 위해서 만든 해결책들을 디자인 패턴이라고 한다.
디자인 패턴
이란 프로그래밍에서 고질적으로 발생하는 문제들을 해결하기 위한 테크닉이다.
추천 책 :
라이브러리
프로그래밍을 하다 보면 내가 만들고 싶은 기능의 코드가 다른 사람이 필요로 하는 것과 똑같은 경우가 많다.
그럴 경우 직접 만들지 않고 필요한 코드를 가져와서 사용하면 된다.
이런 자주 쓰일 법한 코드를 모아둔 곳을 라이브러리
라고 한다.
마치 도서관에서 필요한 책을 찾아보듯 필요한 코드를 찾아서 사용할 수 있게 한 것이다.
라이브러리는 프로그램의 성장에 큰 기여를 했다.
기존의 코드를 가져다 사용할 수 있어서 프로그램을 만드는 속도가 빨라졌고, 코딩을 모르는 사람도 라이브러리를 사용해서 프로그램을 만들 수 있는 수준에 이르렀다.
라이브러리는 언어를 선택하는 기준이 되기도 한다.
라이브러리는 미리 만들어 둔 코드이기 때문에 여러 프로그래밍 언어 중 하나로 작성이 되어있다. 언어마다 자신에게 맞는 라이브러리가 있기 때문에 공용으로 사용할 수 없다.
프레임워크 1
프레임워크는 적은 양의 코드로 프로그램을 만들 수 있다는 면에서 라이브러리와 유사하다.
라이브러리는 내가 필요한 코드를 가져와서 내 코드에 붙이는 방식이다.
그래서 코드를 다 작성하지 않아도 프로그램을 만들 수 있다.
프레임워크는 애초에 프로그래밍의 뼈대가 준비되어있고, 개발자가 작성해야 하는 부분이 비어져있어 정해진 빈 곳에 코드를 채워 넣으면 프로그램이 완성된다.
프레임워크는 반 정도 완성된 프로그램이라고 볼 수 있다.
프레임워크 2
프레임워크는 큰 틀이 정해져 있고 세부 내용만 바뀌는 프로그램에 효과적이다.
예를 들어 쇼핑몰의 경우 옷, 식품, 가구, 전자제품 쇼핑몰 등등이 있는데 파는 상품을 제외하고 기능이나 생김새가 비슷하다.
만약 쇼핑몰 프레임워크가 있다면 모든 쇼핑몰에서 필요한 필수 기능이 이미 작성이 되어있고, 개발자들은 몇 가지 명령어 만으로 쇼핑몰 사이트의 뼈대를 만들 수 있다.
프레임워크를 사용하면 개발자가 미처 생각하지 못 한 부분까지 고려가 되어있다.
예를 들어, 결제 기능을 해킹하지 못하도록 보안을 고려하거나, 회원가입 시 비밀번호 암호화 같은 까다롭고 어려운 부분들은 프레임워크가 알아서 제공해준다.
프레임워크를 통해 뼈대를 완성한 후 개발자가 원하는 사이트에 맞게 조금씩 수정하면 된다.
하지만 프레임워크는 이미 틀이 완성되어 있기 때문에 프레임워크의 틀을 바꾸고 싶다면 복잡한 프레임워크의 구조에 대해 자세하게 알아야 한다.
실력이 좋은 개발자가 아닌 이상 프레임워크의 구조를 바꾸는 것이 힘들다.
라이브러리 vs. 프레임워크
- 라이브러리
자주 쓰일 법한 코드를 모아둔 것으로, 이미 누가 만들어 둔 도구를 가져와서 그대로 사용하는 것이다.
라이브러리를 활용하면 프로그램을 만드는 속도를 대폭 향상 시킬 수 있다.
- 프레임워크
프로그래밍의 뼈대가 준비되어 있고, 개발자가 작성할 공간들만 비워져 있다.
이미 짜여있는 틀을 이용해 최소한의 노력으로 프로그램 완성이 가능 하다.
남의 코드에서 배우기
- 프로그래머의 가장 좋은 스승
개발자에게 있어서 가장 좋은 스승은 잘 짜여진 좋은 코드이다.
훌륭한 개발자들의 코드를 잘 살펴보고, 그 코드는 어떻게 구조가 짜여져 있는지, 스타일 가이드는 어떻게 적용하고 있는지, 변수 이름이나 주석은 어떻게 쓰고 있는지, 어떤 라이브러리나 프레임워크를 사용하고 있는지, 이런 것들을 잘 살펴 볼 필요가 있다.
코드를 계속 관찰하고 마주칠 때마다 유심히 살펴보아야 좋은 코드를 눈에 익히고 내 것으로 만들어 실력을 늘릴 수 있다.
- 좋은 코드를 찾을 수 있는 곳
- 라이브러리
여러 사람이 공유해서 함께 사용하는 라이브러리는 코드의 퀄리티가 높으며, 그만큼 훌륭한 사람들이 신경 써서 만들기 때문에 라이브러리의 내부를 살펴보는 것이 도움이 된다.
이름이 어떻게 지어졌는지, 코멘트를 어떻게 작성했는지 확인해보는 것도 좋은 방법이다. - 개발 문서
프로그래밍에서는 개발 문서가 매우 많이 등장한다.
라이브러리나 프레임워크에도 사용 방식을 알려주는 문서들이 있고, 언어 자체에도 공식 설명 문서들이 있다.
공식 문서에서는 매우 신중하게 예시를 작성해서 공유한다.
그 예시가 곧 가장 엄선된 정석 코드여야 하기 때문이다.
이런 문서들을 자주 읽으면서, 사람들이 어떤 방식으로 코드를 공유하는지 잘 살펴보는 것도 좋다. - 커뮤니티
특정 상황에 대한 좋은 예시가 궁금하다면 인터넷을 검색하는 것도 좋은 방법이다.
개발자들이 이미 여러 방식의 장단점을 고민하는 논의해둔 기록들이 있을 것이다.
또한, 프로그래밍에는 공유의 문화가 잘 되어 있기 때문에 좋은 사례와 이유 같은 것을 적어 둔 사이트, 블로그 등이 많다.
구글 검색 시 Best Practice라는 키워드로 검색하면 어떤게 가장 좋은 코드인지 사람들의 논의 혹은 예시 코드들을 발견할 수 있다.
[코드잇-컴퓨터 개론]https://www.codeit.kr/courses/intro-to-computer
공유하기
Twitter Google+ LinkedIn
댓글남기기