본문 바로가기
728x90

programming17

로직 처리 순서와 방식에 따른 속도 차이 비교 리팩터링 미션을 수행하던 중 하나의 리팩터링 지점을 여러 방식으로 리팩터링 할 수 있다는 생각을 하게 되었고, 이 방식들의 차이가 프로그램 실행 속도에 얼마나 영향을 미치는지 궁금증이 들었다. 궁금증이 발생한 부분은 다음과 같다. 1. 객체 상태를 변경해야 할 때 단순 setter를 사용하는 것과 새로운 객체를 만드는 방식에서 속도 차이가 얼마나 발생하는 가. 2. 디비 조회를 요구하는 검증 로직과 디비 조회가 발생하지 않는 검증 로직을 모두 수행할 때, 검증 로직 순서를 바꾸는 것만으로 로직 실행 시간을 줄일 수 있나. 비교에 사용될 코드 이번 실험(?)에서 사용될 코드는 위에서 언급한 리팩터링 미션에 사용된 코드이다. 상품을 주문할 수 있는 테이블이 있을 때, 해당 테이블에 게스트 존재 여부를 바꿔주.. 2022. 10. 29.
Event Storming 왜 DDD를 사용하나? 1. DDD를 사용하면 실제 비즈니스 도메인을 아키텍처에 투영해 도메인을 정의하고 이 도메인을 바탕으로 커뮤니케이션 할 수 있다. 2. 도메인 전문가와 개발자들이 공통된 언어를 사용할 수 있다. 위와 같은 이점들로 인해 DDD는 현재 널리 사용되고 있는 설계 방식이다. 그리고 DDD를 하기 위한 가장 쉬운 방법 중 하나가 Event Storming이다. Event Storming 사전 준비: 1. 다양한 색의 포스트잇, 마커 2. 포스트잇을 붙일 수 있는 큰 공간(모두가 볼 수 있어야 한다) 3. 각 포스트잇 색이 의미하는 바를 명시해 놓은 공간(모두가 볼 수 있어야 한다) 4. 좌석은 없이, 서서 진행한다 5. 개발자 뿐만아니라 해당 소프트웨어를 제작하는데 필요한 모든 인원들이 .. 2022. 7. 17.
함수형 프로그래밍 JS에서 객체지향 패러다임을 사용하기는 쉽지 않다. JS는 프로토타입 기반 객체지향을 사용하고 this 역시 자바 같은 언어에서의 this와는 다르기 때문이다. 따라서 객체지향 대신 함수형을 사용한다면 프로젝트의 유지보수가 조금은 더 쉬워지고, 디버깅도 쉬워진다. 함수형 프로그래밍은 모든 것을 함수로 표현한다. 따라서 함수형 프로그래밍에서는 함수의 역할(입력을 받아 아웃풋을 내보내는 것)을 고려하면 된다. 명령형 프로그래밍과는 다르게 동작을 위해 동작의 구현 과정까지 세세히 생각하지 않아도 된다. 즉, 함수형 프로그래밍은 어떤 동작을 수행하기 위해 동작 과정을 세세히 명령하는 것이 아닌, "어떤 동작을 하겠다!" 라고 선언해야 한다. 다음 예제를 보자. 1 2 3 const name = "yunki"; .. 2022. 3. 26.
git 기초 upsteram, origin 어떤 저장소 A가 있다고 해보자. 이 저장소를 내 깃허브에 fork하고 fork한 저장소를 local에 clone받는다 해보자. 그러면 다음과 같은 관계가 형성된다. 여기서 upstream, downstream은 두 저장소 간의 관계에 따라 정의되는 상대적 개념이다. 위 그림에서 origin repository의 upstream은 upstream repository이다. 하나의 upstream에서 여러 개의 downstream이 생성될 수 있다. upstream과 origin 차이 통상적으로 내가 다른 사람의 저장소를 포크해왔을 때 upstream은 일반적으로 다른 사람의 저장소를 의미한다. origin은 내가 포크한 내 깃허브에 있는 저장소를 의미한다. 저장소가 클론될 때.. 2022. 2. 21.
728x90