원본글은 github에 있습니다. 'DDD', '도메인 주도 설계'란 단어를 여기저기서 볼 수 있었다. 한번 공부를 해봐야겠다 생각했는데, 오리지널 책(더 빅 블루북)은 어렵단다. 그래도 구입해서 읽어보았다. 역시나 읽기가 쉽지 않았다.. 익숙치 않은 용어들도 나오고 글 전개도 친절하지 않았던걸로 기억한다. 앞부분 보다가 그만두었다. 이규원님 페북에서, 전략적 설계가 핵심이라는 이야기를 들었다. 아 그래도 DDD책은 너무 지루하지. 하고 시간이 많이 지났는데.. 회사 동료가 스터디를 하는데 14장(전략적 설계)를 읽을 차례라고 해서 나도 무심코 참가했다가, 4부를 다 읽었다.(나이스 나도 이제 전략적 설계 읽었다.) 전략적 설계란? 세 가지 원칙은 누구도 완벽하게 이해할 수 없도록 불규칙하게 뻗어나간 시..
원본글은 github에 있습니다. 정말 중요한 것은 무엇일까요? 소프트웨어는 - 중요하지 않는 일에 시간을 쓰기에는 - 빌어먹게 어렵습니다. 그래서, 처음부터 다시 시작해서, 우리에게 절대적으로 중요한 것은 무엇입니까? 코딩(Coding) 궁극적으로, 프로그램이 실행되지 않거나, 고객을 위해 돈을 벌지 못한다면, 당신은 아무것도 하지 않은 것입니다. 테스팅(Testing) 당신은 당신의 작업이 완료되었는지 알아야만 합니다. 테스트는 이것을 당신에게 알려줍니다. 당신이 지혜롭다면, 테스트를 먼저 작성하여 작업이 완료되는 즉시 알 수 있습니다. 그렇지 않으면, 당신은 아마도 완료할 수 있다는 생각에 사로잡히고, 그런데 또 끝낼수 없다는 것을 알게되고, 결국 완료에 얼마나 가까워지는지 확신하지 못합니다. 경청..
원본글은 github에 있습니다. 제가 현재 사용하는 클래스/메소드를 네이밍하는 방법을 소개합니다. 제 방법에 대한 의견/비판 환영합니다! 방법 요구사항을 간결히 한다. 요구사항을 템플릿으로 변경한다. 구현한다. 요구사항 간추리기 50자가 넘지 않는 문장을 사용한다. 50자가 넘으면 문장을 나눈다. 1문장이 완성되면, 작업을 시작할 수 있다. 진행중에 먼저 작업해야할 요구사항(작업사항)이 생기면 그 것부터 한다. 템플릿 Result result = new What(input1, input2).action(); What은 명사 or 명사구 action은 동사(return 이 없으면) or 명사(뭔가 return하면) Result 명사 or 명사구 로 하되 간결하게 한다. 예시 요구사항 쉼표(,) 또는 콜론..
원본글은 github에 있습니다. 지난 2021-03-01 ~ 2021-05-04(11기) 까지 TDD, 클린코드 with Java 강의를 수강하였다. 결론 부터 이야기 하자면, 나의 프로그래밍은 TDD, 클린코드 with Java 강의 이전과 이후로 나뉜다. 1. 강의 추천이유. 업무시간 이외에 코딩하는 습관이 길러졌다. 코딩의 새로운 재미를 느꼈다. 좋은 개발문화에 대해 알게 되었다. tdd, clean code를 학습하는 데 큰 도움이 되었다. 강의전 나는 13년차 개발자였다. 대부분 경력을 외주 개발자로 일했다. 업무는 열심히 했지만, 개인시간을 프로그래밍 학습하는데 사용하지 않았다. 나는 이미 꽤 많은 개발경력을 가지고 있었지만, 이 강의로 많은 것을 배우고 경험할 수 있었다. 오래된(?) 개발..
원본글은 github에 있습니다. 관련 코드도 확인하실 수 있습니다. spring boot 프로젝트를 준비한 후 entity, repository 코드를 이전과 똑같이 작성한다. @Entity @Table(name = "Post") public class Post { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID") private Long id; @Column(name = "CATEGORY_ID") private Long categoryId; @Column(name = "TITLE") private String title; @Column(name = "CONTENT") private String content; @Co..
원본글은 github에 있습니다. 관련 코드도 확인하실 수 있습니다. 먼저 테스트 코드 없이, 아주 간단한 블로그를 만들어보자. java, spring boot, jpa를 사용해서 대충대충 만들어보자. 먼저 spring initializr를 이용해서 spring web, jpa, lombok 를 추가해서 프로젝트 베이스를 만들었다. 나는 서비스(기능)을 만들때 일반적으로 데이터베이스 영역부터 만들었다. 블로그 글을 담을 entity @Entity @Table(name = "Post") public class Post { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID") private Long id; @Column(na..
직렬화 하는 이유도 모르고 개발하고 했는데 Java 든 C# 이든 C++ 이던 간에 데이터의 메모리 구조는 크게 다음 2가지로 나뉩니다. 값 형식 데이터: integer, float(single), charactor(또는 char 의 집합인 string) 등 오브젝트(레퍼런스) 형식 데이터: 메모리 번지(주소, Address)값 —> 주소값을 최종적으로 따라가면 값 형식 데이터를 참조 하게 됨. (C/C++) 또는 언어 차원에서 이 과정을 생략해줌 (C#, JAVA) —> 클래스의 인스턴스는 해당 프로세스의 메모리 상에서만 유효한 번지 주소를 갖는 오브젝트(레퍼런스) 데이터. 이 중에 ‘저장/전송 가능한 데이터’ 는 당연하게도 값 형식 데이터만 전송 가능합니다. 오브젝트(레퍼런스) 형태의 참조 데이터(메..
잘 설계된 소프트웨어를 만드는 3단계 1. 고객이 원하는 기능을 하는 소프트웨어 만들기 2. 객체지향의 기본원리를 적용해서 소프트웨어를 유연하게 하기 3. 유지보수와 재사용이 쉬운 디자인을 위해 노력하기 1단계는 그동안 내가 프로젝트를 수행하며 항상 목표가 되었던 것이다. 개발경력이 점점 늘어나며 유지보수가 쉽도록 개발을 하려고 노력했지만, 별로 아는게 없어서 제자리 수준이였던 것 같다. Head first OOAD 책을 보며 알게 된것이, 객체지향 프로그래밍이라는 것이 소프트웨어를 유연하게, 유지보수와 재사용이 쉽게 만드는 방법론이 였다는것을 이제야 알게 되었다. 그동안 OOP, OOP 수없이 들어오면서 말이다. 객체지향 분석 설계 Object-Oriented Analysis & Design 가 위대한..
- Total
- Today
- Yesterday
- 취업
- Object Oriented
- Alan Kay
- 테스트코드
- akoop
- 익스트림 프로그래밍
- strategic design
- 기본은 테스트코드
- 애자일
- agile
- 테스트 코드
- 자소서
- repositorytest
- DDD
- Object Oriented Programming
- Test Code
- OOP
- 객체지향
- testcode
- Domain Driven Design
- 전략적설계
- 앨런 캐이
- 도메인주도설계
- repository test
- nhn
- 객체지향프로그래밍
- OO
- Yegor
- 도메인 주도 설계
- XP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |