오늘 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님 이유 : 책을 처음 읽을 때, "프로토타입은 이거고, 예광탄은 이거야! 그래서 둘의 차이는 이거라구!"..
오늘 TIL 3줄 요약 중복 코드는 악이다. 바꾸기 쉬운 코드를 작성하자. 직교성을 가진 코드를 작성하자. TIL (Today I Learned) 2022.03.20 오늘 읽은 범위 2장 실용주의 접근법 p37 - p71 책에서 기억하고 싶은 내용을 써보세요. 좋은 설계의 핵심 좋은 설계는 나쁜 설계보다 바꾸기 쉽다. 바꾸기 더 쉽게 (Easier to Change) 단일 책임 원칙이 유용한가? 요구 사항이 바뀌더라도 모듈 하나만 바꿔서 반영할 수 있기 때문이다. 이름이 좋으면 코드가 읽기 쉬워지고, 코드를 바꾸려면 코드를 읽어야 하기 때문이다. => 프로그래밍을 하다보면 변하는 요구사항에 맞춰 기존의 설계를 다시 바꿔야 하거나, 추가하는 것만으로 끝나는 경우가 있다. 이런 상황에 대응하기 위해 설계나 ..
오늘 TIL 3줄 요약 안 되면 안 되는 이유를 설명하자. 잘못된 부분을 발견했다면, 미루지말고 빠른 시일에 고치자. 반복하지말자. 그게 잘못된 코드든.. 행동이든.. TIL (Today I Learned) 2022.03.19 오늘 읽은 범위 1장 실용주의 철학 책에서 기억하고 싶은 내용을 써보세요. 당신은 당신의 조직을 바꾸거나, 당신의 조직을 바꿀 수 있다. 기술에 뒤쳐지는 기분이 든다면 여가 시간을 쪼개서 재미있어 보이는 것을 공부하라. 여러분 자신에게 투자하는 것이니 업무 외 시간에 하는 것이 옳다. => 회사가 오래된 레거시 기술을 사용한다고 느껴진다면, 스스로 시간을 내서 새로운 기술이나 언어를 학습하고, 응용하여 토이 프로젝트를 진행해보자. 프로젝트를 진행하면서 학습한 내용을 토대로 그에 맞..
- Total
- Today
- Yesterday
- 김영한
- Real MySQL
- 스프링 부트
- spring boot
- 구현
- 코테
- Algorithm
- 리팩토링
- 북클럽
- webflux
- 노마드
- 스프링부트
- 알고리즘
- 노마드코더
- 파이썬
- Spring
- leetcode
- kotlin
- mysql 8.0
- 스프링
- 문자열
- MySQL
- 코틀린
- 인프런
- 릿코드
- 백준
- 그리디
- 데이터베이스
- 정렬
- 자료구조
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |