오늘 TIL 3줄 요약 실현하려면 계획하라. 유행하는 것이 아니라 실제로 잘 맞는 것을 사용하라. 모든 테스트가 끝날 때까지는 코딩이 끝난게 아니다. TIL (Today I Learned) 2022.04.05 오늘 읽은 범위 9장. 실용주의 프로젝트 p377-p406 책에서 기억하고 싶은 내용을 써보세요. 깨진 창문을 없애라 품질은 팀의 문제다. 팀 전체가 깨진 창문을 용납하지 않아야 한다. 반드시 제품의 품질에 책임을 져야 한다. 실현하려면 계획하라. => 깨진 창문을 그래도 둔다면 상황은 점점 더 악화된다. 코드를 작성하다 엉망인 코드를 발견하고, 다음에 고쳐야지 하며 냅두었다. 시간이 지나고 다시 그 코드 쪽을 건드리다 엉망인 코드를 마주한다. 또 다시 다음을 기약한다. 이런 일이 반복되면서 시간은..
📌 연습문제 33 다음 문장들이 진정한 요구 사항인가? 가능하다면 진정한 요구사항이 아닌 것을 좀 더 유용하게 고쳐 써 보라. 1. 응답 시간은 500ms이하여야 한다. 💡 나의 해답 : 확실한 요구사항이다. 분명한 이유가 있어서 응답 시간이 500ms이하여야한다는 사항이 주어진 것으로 보인다. 2. 모달창의 바탕색은 회색이다. 💡 나의 해답 : 요구사항이 아니라 생각한다. 음.. 이 사항은 보자마자 "왜?"라는 질문이 자동으로 튀어나왔다. 의도가 사용자를 위한 것인지, 디자이너의 관점에서 그런것인지, 그냥 본인 취향인지 확인할 필요가 있는 사항이다. 3. 애플리케이션은 프론트엔드 프로세스 몇 개와 백엔드 서버로 구성된다. 💡 나의 해답 : 요구사항이 아니라 생각한다. 책에서 말하는 좋은 요구사항은 추상..
오늘 TIL 3줄 요약 사용자처럼 생각하기 위해 사용자와 함께 일하라. 행운은 준비된 사람에게 찾아온다. 사용자는 여러분 팀의 일원이다. TIL (Today I Learned) 2022.04.03 오늘 읽은 범위 8장. 프로젝트 전에 p349-p376 책에서 기억하고 싶은 내용을 써보세요. 요구 사항의 구렁텅이 자신이 뭘 원하는지 정확히 아는 사람은 아무도 없다. 진짜 세상은 엉망이고 갈등이 넘쳐나며 알 수 없는 점도 많다. 프로그래머는 사람들이 자신이 원하는 바를 깨닫도록 돕는다. 신입 개발자들이 자주 범하는 실수는 이런 요청 사항을 받았을 때 바로 해결책을 구현해 버리는 것이다. 요구 사항은 피드백을 반복하며 알게 된다. 실용주의 프로그래머는 프로젝트 전체를 요구 사항 수집 과정으로 보아야 한다. 사..
오늘 TIL 3줄 요약 의도적으로 프로그래밍하자 가장 빠른 알고리즘이 언제나 가장 좋은 알고리즘은 아니다. 코드를 리팩토링할 이유는 없다. TIL (Today I Learned) 2022.04. 02 오늘 읽은 범위 7장. 코딩하는 동안 p273-p348 책에서 기억하고 싶은 내용을 써보세요. 우연에 맞기는 프로그래밍 우리는 우연에 맡기는 프로그래밍, 곧 행운과 우연한 성공에 의존하는 프로그래밍을 하지 않아야 한다. 의도적으로 프로그래밍해야 한다. 우연에 기대다 보면 결국 문서화되지 않은 에러나 예외적인 경우의 동작에 의존하게 되고 만다. => 우연에 맞기는 프로그래밍, 나도 종종 해왔던 프로그래밍 방식이다. 기능을 구현해서 테스트코드를 작성하고 테스트는 초록불이 들어왔다.(어떻게 성공했던 걸까..) "..
오늘 TIL 3줄 요약 동시성은 소프트웨어 동작 방식이고, 병렬성은 하드웨어가 하는 것 수정 가능한 리소스를 공유하는 애플리케이션 코드 어디에서나 동시성 문제가 발생할 수 있다. 불규칙한 실패는 동시성 문제인 경우가 대다수! TIL (Today I Learned) 2022.03.29 오늘 읽은 범위 6장. 동시성 p241-p272 책에서 기억하고 싶은 내용을 써보세요. 시간적 결합 깨트리기 우리가 신경쓰는 유일한 시간은 일정, 바로 출시까지 남은 시간뿐이다. 시간에는 우리가 신경 써야 할 측면이 두 가지 있는데, 동시성(동시에 일어나는 일)과 순서(시간의 흐름 속에서 일들의 상대적인 위치)다. => 나는 동시성과 순서를 신경쓰며, 프로그래밍을 해왔는가? 창피하지만 내 대답은 두가지 모두 신경 쓰지 않았다..
5장까지 총 23개의 연습문제가 있습니다. 이 중 한 문제를 골라 풀이과정을 작성해 주세요. 연습 문제 22 (p223) 입력 칸에 들어온 문자열 값을 검증하고 18에서 150사이의 정수로 바꿔야 하는 상황이다. 전체 변환은 다음과 같다. 문자열 입력 내용 -> [검증 및 변환] -> {:ok, 값} | {:error, 원인}"검증 및 변환"을 구성하는 개별 변환들을 작성하라. 풀이 과정 위 소스를 검증과 변환 작업을 거치는 소스로 변환하면, 아래와 같다. 문자열 입력 내용 -> [문자에서 정수로 변환이 가능한지 검사] -> [문자에서 정수로 변환] -> [18 ~ 150 사이의 정수인지 검사] -> {:ok, 값} | {:error, 원인}List nums = strs.stream() .filter(s..
오늘 TIL 3줄 요약 응집도를 높이고, 결합도를 낮추자. 이벤트는 모든 곳에 있다. 상속도 일종의 결합이다. TIL (Today I Learned) 2022.03.26 오늘 읽은 범위 5장. 구부러지거나 부러지거나 p181-p239 책에서 기억하고 싶은 내용을 써보세요. 결합도 줄이기 높은 결합도는 변경의 적이다. 결합도가 높으면 이리저리 연결되어 있어서 여러 가지를 동시에 바꿔야 하기 때문이다. 소프트웨어의 구조는 유연해야 한다. 결합도가 낮은 코드가 바꾸기 쉽다. 결합은 두 개의 코드 조각이 무언가를 공유하면 언제나 일어날 수 있다. => 내가 개발할 때, 항상 의도적으로 생각하는것이 있다. 바로 응집도를 높이고, 결합도를 낮추자인데 아니나다를까 이 책에서도 언급하고 있다. 지금보다 더 신입일 때의..
오늘 TIL 3줄 요약 망치지 말고 멈춰라. 단정하지 말자. 적절한 곳에 예외를 사용하자. TIL (Today I Learned) 2022.03.24 오늘 읽은 범위 4장. 실용주의 편집증 책에서 기억하고 싶은 내용을 써보세요. 계약에 의한 설계 컴퓨터 시스템을 다루는 것은 어렵다. 사람 문제는 더 어렵다. 계약은 상대편은 물론 자신의 권리와 책임을 정의한다. 단순하지만 강력한 기법으로, 프로그램의 정확성을 보장하기 위해 소프트웨어 모듈들의 권리와 책임을 문서화하는 데에 초점을 맞춘다. 만약 호출자가 루틴의 모든 선행조건을 충족한다면, 해당 루틴은 종료시 모든 후행조건과 불변식이 참이 될 것을 보증해야한다. => 함수를 선언할 때, 요구사항(매개변수)을 위반하지 않고(의도하지 않은 null을 보낸다던지)..
오늘 TIL 3줄 요약 우리는 지식을 설계와 구현, 테스트, 문서로 표현한다. 비난 대신 문제를 해결하라. 그 놈의 오류 메시지 좀 읽어라 TIL (Today I Learned) 2022.03.23 오늘 읽은 범위 3.장 기본 도구 p103-p144 책에서 기억하고 싶은 내용을 써보세요. 실용주의 프로그래머로서 우리의 기본 재로는 나무나 쇠가 아니라 지식이다. 우리가 수집하는 요구 사항은 지식이고, 우리는 그 지식을 설계와 구현, 테스트, 문서로 표현한다. 일반 텍스트를 사용하면 수작업으로든 프로그램으로든 동원 가능한 거의 모든 도구로 지식을 다룰 수 있게 된다. 일반 텍스트는 인쇄 가능한 문자로 이루어지고, 정보를 전달하기에 적합한 형식을 갖추어야 한다. 일반 텍스트라면 데이터 그 자체만으로 의미가 드..
Mission : 다른 사람이 작성한 TIL 3개를 선정하고, 그 이유와 소감을 작성하기. nlom0218님 이유 : "Topic 9 DRY: 중복의 해악"을 요약하신 부분이 상당히 공감되어, 혹시 TIL를 작성하실 때, 저와 같은 마음으로 정리하신건 아닐까하는 생각에 선정하게 되었습니다. vora128님 이유 : 저도 2장을 읽으면서 "Topic. 14 도메인 언어"를 이해하는데 상당히 힘겨웠습니다. vora128님이 작성하신 소감에서도 그 부분이 어렵다고 명시하시면서 다시 읽어보겠다라고 하셨습니다. 저 역시 그 부분을 이해하려고 다시 읽은 기억이 떠올라 선정하게 되었습니다. jaeyoung0909님 이유 : 책을 처음 읽을 때, "프로토타입은 이거고, 예광탄은 이거야! 그래서 둘의 차이는 이거라구!"..
- Total
- Today
- Yesterday
- kotlin
- 릿코드
- Real MySQL
- 인프런
- 그리디
- 스프링 부트
- 파이썬
- 노마드코더
- leetcode
- 정렬
- 코테
- 스프링
- 리팩토링
- 데이터베이스
- 코틀린
- 구현
- 알고리즘
- 노마드
- Algorithm
- MySQL
- spring boot
- 자료구조
- 백준
- 문자열
- webflux
- 김영한
- 스프링부트
- Spring
- mysql 8.0
- 북클럽
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |