June's Blog

클린 애자일(Clean Agile - Back to Basics) - 2장 왜 애자일인가

직업의식 우리 사회는 전적으로 소프트웨어에 의존하고 있다. 소프트웨어 없이는 지금 우리가 누리는 문명을 만들 수 없을 것이다. 그렇다면 누가 소프트웨어를 만드는가? 여러분과 나다. 우리 프로그래머가 세상을 지배한다. 나는 꿈꾸었고, 지금도 꿈꾼다. 애자일 소프트웨어 개발의 규율이 컴퓨터 프로그래밍을 진정한 직업, 명예로운 직업으로 바꾸는 ...

클린 애자일(Clean Agile - Back to Basics) - 1장 애자일 소개

애자일의 역사 1970년, 소프트웨어 세계가 두 가지 충돌하는 기법의 갈림길 앞에 서 있었다. 선-애자일(pre-Agile) 조금씩 걸어보고 측정을 한 후 그에 맞추어 개선하기를 반복하는 방식으로 걷는 것 변경 비용이 작은 프로젝트에서 잘 작동 목표가 명확하게 세워지지 않은 불완전하게 정의된 문제를 잘 ...

코틀린으로 배우는 함수형 프로그래밍

표지 목차 1장 함수형 프로그래밍이란? 1.1 함수형 프로그래밍의 특징 1.2 순수한 함수란 무엇인가? ____동일 입력 동일 출력 ____부수효과 없는 코드 ____순수한 함수의 효과와 그외 고려사항 1.3 부수효과 없는 프로그램 작성하기 ____공유 변수 수정으로 인한 부수효과 ____객체의 상태 변경으로 인한 부수효과 1.4 참조 투명성으로 ...

도메인 주도 설계 첫걸음 - 05장 간단한 비지니스 로직 구현

범위 [Part 2] 전술적 설계 - 05장: 간단한 비지니스 로직 구현 개념 정리 책에서 기억하고 싶은 내용 비지니스 로직은 소프트웨어에서 가장 중요한 부분이며 애초에 소프트웨어를 구현하는 이유이기도 하다. 트랜잭션 스크립트 트랜잭션 스크립트 패턴은 프로시저를 기반으로 시스템의 비즈니스 로직을 구성하며, 각 프로시저는 ...

도메인 주도 설계 첫걸음 - 04장 바운디드 컨텍스트 연동

범위 [Part 1] 전략적 설계 - 04장: 바운디드 컨텍스트 연동 개념 정리 컨트랙트(contract): 바운디드 컨텍스트 사이의 접점 책에서 기억하고 싶은 내용 바운디스 컨텍스트의 구현은 서로 독립적으로 발전할 수 있지만, 상호작용해야 한다. 협력형 패턴 그룹 파트너십 패턴 파트너십(partnership) 모델에...

프로그래머스 - 49189 가장 먼 노드

문제 49189 가장 먼 노드 풀이 너비 우선 탐색(bfs)을 한다. 시작 노드를 거리를 0으로 설정하고 큐에 넣고, 탐색을 시작한다. 큐에서 노드를 꺼낸다. 이미 방문한 노드라면 처음으로 돌아간다. 연결된 노드들을 거리를 현재 노드의 거리 + 1로 설정하고 큐에 넣는다. 큐가 비면 탐색을 종료하고 마지막으로 탐색한 노드들과...