전체 글
-
Clean Code - 5장 형식 맞추기주니어 개발자 2022. 4. 2. 19:23
1. 형식을 맞추는 목적 오늘 구현한 코드의 가독성은 앞으로 바뀔 코드의 품질에 지대한 영향을 미친다. 오랜 시간이 지나 원래 코드의 흔적을 더 이상 찾아보기 어려울 정도로 코드가 바뀌어도 맨 처음 잡아놓은 구현 스타일과 가독성 수준은 유지보수 용이성과 확정성에 계속 영향을 미친다. 2. 적절한 행 길이를 유지하라 3. 신문 기사처럼 작성하라 독자는 표제를 보고서 기사를 읽을지 말지 결정한다. 쭉 읽으며 내려가면 세세한 사실이 조금씩 드러난다. 소스 파일도 신문 기사와 비슷하게 작성한다. 이름은 간단하면서도 설명이 가능하게 짓는다. 아래로 내려갈수록 의도를 세세하게 묘사한다. 4. 세로 밀집도 서로 밀접한 코드 행은 세로로 가까이 놓여야 한다. 5. 수직 거리 함수 연관 관계와 동작 방식을 이해하려고 이..
-
Clean Code - 4장 주석주니어 개발자 2022. 3. 12. 21:26
나쁜 코드에 주석을 달지 마라. 새로 짜라. 잘 달린 주석은 그 어떤 정보보다 유용하다. 경솔하고 근거 없는 주석은 코드를 이해하기 어렵게 만든다. 오래되고 조잡한 주석은 거짓과 잘못된 정보를 퍼뜨려 해악을 미친다. 우리는 코드로 의도를 표현하지 못해, 그러니까 실패를 만회하기 위해 주석을 사용한다. 주석은 언제나 실패를 의미한다. 그러므로 주석이 필요한 상황에 처하면 곰곰이 생각하기 바란다. 상황을 역전해 코드로 의도를 표현할 방법은 없을까? 주석을 달 때마다 자신에게 표현력이 없다는 사실을 푸념해야 마땅하다. 주석은 오래될수록 코드에서 멀어진다. 오래될수록 프로그래머들이 주석을 유지하고 보수하기란 현실적으로 불가능 하기 때문에 완전히 그릇될 가능성도 커진다. 코드는 항상 변화하고 진화하기 때문에 주석..
-
Clean Code - 3장 함수주니어 개발자 2022. 3. 12. 17:56
1. 한 가지만 해라! 함수는 한 가지를 해야한다. 그 한 가지를 잘 해야한다. 그 한 가지만을 해야 한다. 지정된 함수 이름 아래에서 추상화 수준이 하나인 단계만 수행한다면 그 함수는 한 가지 작업만 한다고 볼 수 있다. 2. 내려가기 규칙 코드는 위에서 아래로 이야기하는 것 처럼 읽혀야 좋다. 3. Switch문 47.p 참고 4. 서술적인 이름을 사용하라! 함수 이름이 길어도 어떤일을 하는지 더 잘 표현한 함수 이름이 훨씬 좋은 이름이다. 5. 깨끗한 코드 코드를 읽으면서 짐작했던 기능을 각 루틴이 그대로 수행하면 깨끗한 코드이다. 6. 함수 인수 함수에서 이상적인 인수는 0개(무항)이다. 다음은 1개이고, 그 다음은 2개이다. 3개는 가능한 피하는 편이 좋다. 4개 이상은 특별한 이유가 필요하다...
-
Spring Boot와 AWS로 혼자 구현하는 웹 서비스 - 3장 Spring Boot에서 데이터베이스 다뤄보자Spring 2022. 2. 26. 14:59
웹 서비스를 개발하고 운영하다 보면 피할 수 없는 문제가 데이터베이스를 다루는 일 필자가 스프링을 배울 때는 iBatis와 같은 SQL 매퍼를 이용해서 데이터베이스의 쿼리를 작성했습니다. 그러다 보니 실제로 개발하는 시간보다 SQL을 다루는 시간이 더 많았습니다. 이것이 이상하게 느껴졌습니다. 분명 "객체지향 프로그래밍"을 배웠는데 왜 객체지향 프로그래밍을 못 하지? 객체 모델링보다는 테이블 모델링에만 집중하고, 객체를 단순히 테이블에 맞추어 데이터 전달 역할만 하는 개발은 분명 기형적인 형태였습니다. 문제의 해결책으로 JPA라는 자바 표준 ORM 기술을 만나게 됩니다. 이번 시간에는 JPA를 프로젝트에 적용해 보겠습니다. JPA 소개 Oracle, MySQL 등을 쓰지 않는 웹 애플리케이션은 거의 없습..
-
Clean Code - 2장 의미 있는 이름주니어 개발자 2022. 2. 26. 13:08
의도를 분명히 밝혀라 1. 이름이 정말로 중요하다. 2. 변수 혹은 함수나 클래스의 존재 이유, 수행 기능, 사용 방법이 따로 주석이 필요하다면 의도를 분명히 드러내지 못했다는 말이다. int d; //경과 시간(단위:날짜) 이름 d는 아무 의미도 드러나지 않는다. 경과 시간이나 날짜라는 느낌이 안든다. 측정하려는 값과 단위를 표현하는 이름이 필요하다. 의도가 드러나는 이름을 사용하면 코드 이해와 변경이 쉬워진다. 3. 23 페이지 참고 23 페이지의 코드 처럼 함수들에 의미 있는 이름들을 정해주고 코드의 전체적인 맥락을 보면 단순히 이름만 고쳤는데도 함수가 하는 일을 이해하기 쉬워졌다. 바로 이것이 좋은 이름이 주는 위력이다. 4. 그릇된 정보를 피하라 코드에 그릇된 단서를 남겨서는 안 된다. 그릇된 ..
-
Spring Boot와 AWS로 혼자 구현하는 웹 서비스 - 2장 Spring Boot에서 테스트 코드를 작성하자Spring 2022. 2. 20. 10:26
2장의 목표 : 테스트 코드 작성의 기본을 배운다. TDD와 단위 테스트 TDD와 단위 테스트는 서로 다른 이야기 TDD : 테스트가 주도하는 개발하는 것으로 테스트 코드를 먼저 작성하는 것부터 시작 레드 그린 사이클 - 항상 실패하는 테스트를 먼저 작성(Red) - 테스트가 통과하는 프로덕션 코드를 작성(Green) - 테스트가 통과하면 프로덕션 코드를 리팩토링(Refactor) 반면 단위 테스트는 TDD의 첫 번째 단계인 기능 단위의 테스트 코드를 작성하는 것을 말한다. 테스트 코드를 꼭 먼저 작성하는 것도 아니고, 리팩토링도 포함되지 않고 순수하게 테스트 코드만 작성하는 것을 말한다. 단위 테스트 장점 - 개발단계 초기에 문제를 발견하게 도와준다. - 개발자가 나중에 코드를 리팩토링하거나 라이브러리..
-
Clean Code - 1장 깨끗한 코드주니어 개발자 2022. 2. 20. 00:41
프로그래머로써 가져야할 습관 1. 좋은 코드를 사수하는 일은 전적으로 프로그래머들의 책임이다. 2. 언제나 코드를 깨끗하게 유지하는 습관이다. 3. 나쁜 모듈을 보면 좋은 모듈로 개선할 방안을 떠 올려보려는 습관을 가지자 깨끗한 코드란? 1. 보기에 즐거운 코드 2. CPU 자원을 낭비하는 코드, 실행 속도가 느린 코드 3. 세세한 사항까지 꼼꼼하게 처리하는 코드 4. 한 가지를 잘 하는 코드 = 한가지에 '집중'한다. 5. 테스트 케이스가 없는 코드는 깨끗한 코드가 아니다. 6. 시간을 들여 주의깊게 깔끔하고 단정하게 정리한 코드 7. 켄트 백이 제안한 단순한 코드 규칙 7.1. 모든 테스트를 통과한다. 7.2. 종복이 없다.(집중) 7.3. 시스템 내 모든 설계 아이디어를 표현한다. 7.4. 클래스,..
-
[Spring] Maven, pom.xmlSpring 2021. 4. 13. 22:27
1. Maven은 무엇인가? 자바 프로젝트를 관리하는 툴로, 미리 작성된 xml 파일을 이용하여 라이브러리를 자동으로 다운로드하거나 프로젝트를 빌드해준다. 즉, 자바 소스를 컴파일하고 패키지해서 deploy까지 자동화 해준다는 것이다. Maven은 필요한 라이브러리를 특정 문서(pom.xml)에 정의해 놓으면 내가 사용할 라이브러리 뿐만 아니라 해당 라이브러리가 작동하는데에 필요한 다른 라이브러리들까지 관리하여 네트워크를 통해서 자동으로 다운받아 준다. 1-1. 라이브러리란? 활용 가능한 도구들의 집합, 즉 재사용이 필요한 기능으로 반복적인 코드 작성을 없애기 위해 언제든지 필요한 곳에서 호출하여 사용할 수 있도록 Class나 Function으로 만들어진 것입니다. 1-2. 빌드란? 소스코드 파일을 컴퓨..