반응형 분류 전체보기16 리팩터링 2판 도서 메모 | 리팩터링 첫 번째 예시 예시 프로그램이 새로운 기능을 추가하기에 편한 구조가 아니라면, 먼저 기능을 추가하기 쉬운 형태로 리팩터링하고 나서 원하는 기능을 추가한다. 리팩터링이 필요한 이유는 변경 때문이다. 잘 작동하고 나중에 변경할 일이 절대 없다면 코드를 현재 상태로 놔둬도 아무런 문제가 없다. 하지만 다른 사람이 코드를 읽고 이해해야 할 일이 생겼는데 로직을 파악하기 어렵다면 대책을 마련해야 한다. 리팩터링의 첫 단계 리팩터링의 첫 단계는 항상 똑같다. 리팩터링할 코드 영역을 꼼꼼하게 검사해줄 테스트 코드들부터 마련해야 한다. 리팩터링에서 테스트의 역할은 굉장히 중요하다! 함수 추출하기 코드 조각을 별도 함수로 추출하는 방식으로 파악한 정보를 코드에 반영하고, 추출한 함수에 코드가 하는 일을 설명하는 이름 짓기 수정 후 곧.. 2023. 12. 4. Typegoose | 타입구스 사용 경험 정리(ArraySubDocumentType 타입, getter virtual method 등) 타입 구스 공식 문서: https://typegoose.github.io/typegoose/docs/guides/quick-start-guide Quick Start Guide | typegoose Quick Overview of Typegoose typegoose.github.io Typegoose가 뭐야? 왜 사용하는데? 자바스크립트에서 타입스크립트로 마이그레이션하는 업무가 한창이었다. 익숙하지 않던 타입스크립트를 학습하면서 낯섦에 대한 기대와 긴장을 동시에 가지게 되었고, 이 감정은 항상 날 자극시켰다. 그러던 중 서버 모델을 마이그레이션하는 과정에서 어떠한 의사결정 분기에 발을 딛게 되었다. 바로 타입구스(Typegoose)의 사용 여부. 기존에 mongoose로 만들었던 코드들을 타입스크립트로 .. 2023. 11. 14. 독서 메모 | 조직을 민첩하고 유연하게 바꾸는 애자일 전략 | 밀리의서재 위의 책은 애자일에 대한 방법론적인 내용보다는 애자일을 어떤 관점에서, 혹은 어떤 마인드로 접근해야 하는지에 대한 보다 본질적인 측면에서 생각을 할 수 있도록 한다. 많은 회사나 팀들이 효율적이고 실용적인 업무 운영을 하기 위해서 많은 고민들을 하고, 그 대안으로 애자일 방식을 많이 시도한다. 나 역시 스타트업을 운영했을 때, 애자일 방법들을 팀에 적용시키기 위한 노력을 했지만 쉽지 않았던 기억이 있다. 현재 직장에서의 우리 팀 역시 팀의 규모와 형태가 변하면서 그에 맞게 업무 프로세스를 변화시킬 필요성을 느끼고 그에 따라 스크럼 방식을 도입하고 있다. 과거에도 잠깐 애자일을 경험했지만, 조금 더 깊은 차원에서 애자일을 이해하기 위해서 위의 책을 읽게 되었고, 인상깊었던 메모들을 간단하게 공유하려고 한다.. 2023. 9. 9. JS개발자 관점에서 보는 Java | Java17 | 자바, 자바스크립트의 타입 유형 비교 변수(Variables): 데이터를관리하기 위해 해당 정보를 메모리 상에 입력하고 해당 메모리의 주소를 관리하는 개념. 즉 Java 프로그램이 실행되는 동안 데이터를 보관하는 컨테이너로, 변수는 메모리에 할당된 예약된 영역의 이름이다. Java에서의 변수 유형 1. 지역 변수(Local Variable) 지역 변수는 메서드 안에 선언된 변수를 말한다. 하나의 메서드 안에서 선언된 변수는 오직 해당 메서드 내에서만 사용할 수 있다. 그렇기 때문에 지역 변수는 static으로 정의할 수 없다. 아직 자바의 메모리 활용에 대해서 학습한 적이 없어서 JVM이 어떻게 메모리를 할당하는지 잘 모르지만, 예전에 운영 체제에 대해서 아주 잠깐 찍먹했을 때의 기억에 의하면, static으로 정의된 변수나 글로벌한 변수의.. 2023. 8. 7. JS개발자 관점에서 보는 Java | Java17 | 자바 입문, 컴파일러와 인터프리터, JDK 설치 💡 ▼단순 프로필 더보기 - 문과 출신, 스포츠과학과/경영학과 학사 졸업 - Python 5개월 공부 - C언어 및 CS, 네트워크 5개월 맛보기 - Java Script(Node) 경력 약 1년 6개월. 현재 주니어 웹개발자 - NestJS 학습하다 스프링부트 강의도 참고하게 됐고, 그러다가 Java에 흥미 생겨서 공부하기 시작함 - 즉 많이 부족하고 아직도 배울 점이 많음. 틀리거나 잘못된 부분들이 있다면 과감하게 뒤로 가기 클릭하기 (피드백해 주시면 정말정말 감사할 것임!) 새해 때 세운 목표 중 하나는 하나의 웹 서비스를 A to Z까지 만들고, 배포까지 하는 것이었다. 이를 위해 기술 스택으로 NestJS를 선정했었다. NestJS 학습, API 문서 작성, ERD 설계 등의 준비를 하고 프로.. 2023. 7. 27. 독서 메모 | 객체지향의 사실과 오해 | 실제로 설계하고 구현해보기 "객체지향의 사실과 오해" 책을 읽으면서 메모한 글입니다. (07장) 개념 관점(Conceptual Perspective)에서 설계: 도메인 안에 존재하는 개념과 개념들 사이의 관계를 표현 명세 관점(Specification Perspective)에서의 설계: 명세 관점은 도메인의 개념이 아니라 실제로 소프트웨어 안에서 살아 숨쉬는 객체들의 책임에 초점을 맞추게 된다. 즉 사용자 영역인 도메인을 벗어나 개발자 영역인 소프트웨어로 초점이 옮겨진다. 구현 관점(Implementaion Perspective): 실제 작업을 수행하는 코드, 즉 객체들이 책임을 수행하는 데 필요한 동작하는 코드를 작성하는 것 지금까지 역할, 책임, 협력을 이용해 객체의 인터페이스를 식별했다. 협력에 참여하기 위해 객체가 수신해야.. 2023. 7. 24. 이전 1 2 3 다음 반응형