Computer기본지식
-
리팩터링 Chapter 4 - 테스트 구축하기Computer기본지식/리팩터링 2021. 9. 2. 19:04
이번 4장은 테스트를 어떻게 작성하고 작성한 것을 바탕으로 리팩터링하는 방법을 가르쳐줍니다. 저도 Spring을 공부하면서 무작정 기능을 개발하는 습관이 있었습니다. 예외적인 부분과 경계부분은 전혀 고려하지 않았습니다. 이 챕터를 읽고나서는 코드를 짜는 방식에 대한 생각이 완전히 바뀌었습니다. 기능을 구현하기 전 무조건 기능에 대한 테스트 코드를 작성하고 그것에 맞춰가는 방식으로 코드를 구성할 예정입니다. 이것이 바로 TDD(Test Driven Development)입니다. 4장을 정리해보겠습니다. 4-1 자가 테스트 코드의 가치 실제 프로그래머들이 코드를 작성하는 시간의 비중은 크지 않습니다. 대부분의 시간을 설계 및 버그 수정에 시간을 쏟아 붓습니다. 작업을 효율적으로 해줄 수 있는 방법이 테스트를..
-
리팩터링 Chapter 3 - 코드에서 나는 악취Computer기본지식/리팩터링 2021. 8. 26. 16:40
이번 포스팅은 코드에서 나는 악취라는 주제로 포스팅하겠습니다. 이번 챕터는 리팩터링을 언제 해야하고 언제 그만할지를 알려주는 챕터입니다. 그래서 다양한 리팩터링 기술들을 간단하게 코드로 소개했습니다. 3-1 기이한 이름 함수, 모듈, 변수, 클래스 등은 이름만 보고도 무슨 일을 하고 어떻게 사용해야 하는지 명확히 알 수 있도록 신경써야합니다. 대부분 함수 선언 바꾸기, 변수 이름 바꾸기, 필드 이름 바꾸기로 리팩터링. 3-2 중복 코드 한 클래스에 두 메서드가 똑같은 표현식 사용하는 경우 : 함수 추출하기 코드가 비슷한데 완전히 똑같진 않을 경우 : 문장 슬라이스하기 같은 부모로부터 파생된 서브 클래스에 중복 코드가 있을 경우 : 메서드 올리기 문장 슬라이스 비슷한 부분을 모아서 함수 추출하기를 쉽게 적..
-
리팩터링 Chapter 2 - 리팩터링 원칙Computer기본지식/리팩터링 2021. 8. 22. 20:31
이번 챕터는 조금 근본적인 이야기가 많은 챕터였습니다. 그래서 정리를하며 내용을 이해하는 방식으로 책을 읽었습니다. 스터디 중 Branch와 YAGNI에 대해서 토론한 내용도 정리해봤습니다. 2-1 리팩터링의 정의 리팩터링(명사) : 소프트웨어의 겉보기 동작은 그대로 유지한 채, 코드를 이해하고 수정하기 쉽도록 내부 구조를 변경하는 기법 리팩터링(동사) : 소프트웨어의 겉보기 동작은 그대로 유지한 채, 여러가지 리팩터링 기법을 적용해 소프트웨어를 재구성하는 기법 누군가 "리팩터링하다가 코드가 깨져서 며칠이나 고생했다고 하면 그것은 리팩터링한 것이 아니다. 2-2 두 개의 모자 소프트웨어 개발의 목적을 '기능 추가'냐 아니면 '리팩터링'이냐를 확실히 구분합니다. 기능추가는 테스트를 추가하여 통과하는지 확인..
-
쿠키와 세션 구현Computer기본지식/Computer 2021. 8. 17. 12:37
안녕하세요. 이번에는 간단한 쿠키와 세션을 Java언어로 직접 구현해보는 작업을 가졌습니다. Serialize를 공부하다가 보니 쿠키와 세션이 Java의 영속화에 사용된다는 말에 필요한 기술이구나라고 느꼈습니다. 그래서 간단하게라도 구현해보고 이해해보자라는 생각이 들었습니다. 지금부터 시작해보겠습니다. 1. Session 세션은 서버에 저장되는 형태로 민감한 정보의 데이터들을 주로 관리해주고 클라이언트에게는 접근 가능한 임시 키를 발급해주는 형태를 가지고 있습니다. 그러면 클라이언트가 키를 HTTP요청에 담아서 보내면 그것을 받은 세션은 다시 HTTP에 데이터를 담아 응답해 주는 역할을 합니다. 간단히 세션에 대해서 구현해봤습니다. @RestController @Slf4j public class Sess..