본문 바로가기

All199

[기록결산] 애쓴 것은 언젠가 정산된다. [기록결산] 애쓴 것은 언젠가 정산된다.생애 첫 연말정산을 끝내고, 1월도 막바지라는 생각에 '기록결산'이란걸 해보려고 한다. 딱 드는 생각은 뭐다? 월말결산을 월마다 해야한다는 뜻이지요 .. 바로 회고를 습관화해보고자 월마다 성찰과 반성과 반영을 동시에 하자! 라는 목표 하나로 24년을 기록해보려고 한다. 물론 더 꼼꼼하고 자세히 적는 것이 물론 독자나 미래의 나에게 더욱 좋을 것이다. 하지만 완벽주의의 탈피를 쓴 필자는 이 일을 1년 뒤로 미룰 것이기 때문에 완벽하지 않아도 기록하고자 한다.24년 1월 3일import get from "lodash/get"; / lodash 알아보기24년 1월 4 ~ 5일중단 배포와 관련 QA를 쳐내다 .... !24년 1월 8일ga gtmgym = google ta.. 2024. 1. 31.
[React] useEffect에서의 의존성(dependency)과 실행 흐름 useEffect에 대해 정리하고 싶은 마음이 들어 useEffect의 실행 조건과 흐름을 한 큐에 정리해보고자 한다. useEffect 란? useEffect는 리액트 컴포넌트가 렌더링 될 때마다 특정 작업을 실행할 수 있도록 하는 Hook이다. 근데 useEffect는 왜 Effect라는 이름을 가질까? Hook은 컴포넌트의 렌더링과 별개로 발생하는 작업들, 즉 "부수 효과"를 처리하기 위해 사용된다. (" S H O C K I N G ") 이 useEffect Hook은 컴포넌트가 렌더링되고 나서 비동기적 또는 부수적인 작업을 수행할 수 있도록 도와주기 때문에 "Effect"라는 용어가 사용되었다고 한다. 더보기 React의 클래스 컴포넌트에서는 componentDidMount, componentD.. 2024. 1. 29.
[클린코드] 44~48일차 - 동시성2 톺아보기 [클린코드] 44~45일차 - 동시성2 톺아보기 클린코드 44일차 (p. 404 ~ 407 (17장) / 408 ~ 412 (18장) ) 클린코드 45일차 (p. 413 ~ 419 (18장) ) 클린코드 46일차 (p. 420 ~ 428 (18장) ) 클린코드 47일차 (p. 429 ~ 436 (18장) ) 클린코드 48일차 (p. 437 ~ 446 (18장) ) 18장 동시성2 225쪽에서 소개한 동시성을 좀 더 자세히 보완하기 위한 장이다. 클라이언트/서버 예제 예제를 살펴보면 서버와 클라이언트의 단순한 소켓 프로그래밍 코드를 보여주고 있다. 서버는 소켓을 열어놓고 클라이언트가 연결하기를 기다린다. 클라이언트는 소켓에 연결해 요청을 보낸다. 아래는 클라이언트/서버 테스트 코드이다. 해당 테스트는 10.. 2023. 12. 22.
[클린코드] 40~43일차 - 냄새와 휴리스틱 (주석/환경/함수/일반) [클린코드] 40일차 - 냄새와 휴리스틱 클린코드 40일차 (p. 370 ~ 378 (17장) ) 클린코드 41일차 (p. 379 ~ 387 (17장) ) 클린코드 42일차 (p. 388 ~ 395 (17장) ) 클린코드 43일차 (p. 396 ~ 403 (17장) ) 17장 냄새와 휴리스틱 좋지 못한 코드는 냄새가 난다... (ㅋ)(ㅠ) 그리하여 이 장에서는 다양한 코드 냄새와 코드를 짜면서 사용하는 기교, 휴리스틱을 소개한다. 주석 1. 부적절한 정보 다른 시스템에 저장할 정보는 주석으로 적절하지 못하다. 2. 쓸모 없는 주석 오래된 주석, 엉뚱한 주석, 잘못된 주석은 더 이상 쓸모가 없음 주석은 '낡는다.' 쓸모 없어진 주석은 제발 삭제하자. 3. 중복된 주석 코드만으로 충분한데 구구절절 설명하는 .. 2023. 12. 18.
[클린코드] 37일차/38일차/39일차 - SerialDate 리팩터링 [클린코드] 37일차/38일차 - SerialDate 리팩터링 클린코드 37일차 (p. 344 ~ 351 (16장) ) 클린코드 38일차 (p. 352 ~ 362 (16장) ) 클린코드 39일차 (p. 363 ~ 369 (16장) ) 16장 SerialDate 리팩터링 이 장에서는 JCommon 라이브러리에 있는 org.jfree.date 패키지의 SerialDate라는 클래스를 리팩터링을 진행한다. (* 책에서는 https://www.jfree.org/jcommon/index.php 라고 언급되어있지만 https://www.jfree.org/jcommon/ 로 들어가야한다. + https://www.jfree.org/jcommon/api/index.html) SerialDate는 날짜를 표현하는 자바 .. 2023. 12. 13.
[클린코드] 35일차/36일차 - JUnit 들여다보기 [클린코드] 35일차/36일차 - JUnit 들여다보기 클린코드 35일차 (p. 324 ~ 332 (13장) ) 15장 JUnit 들여다보기 JUnit은 켄트 벡과 에릭 감마가 비행기를 타고 가다 만들었다고 한다..! ComparisonCompacterTest.java 라는 모듈을 살펴보자 문자열 비교 오류를 파악할 때 유용한 코드이다. 예를 들어, ABCDE와 ABXDE를 받으면 를 반환한다. package junit.framework; public class ComparisonCompactor { private static final String ELLIPSIS = "..."; private static final String DELTA_END = "]"; private static final Str.. 2023. 12. 12.
[클린코드] 28일차~34일차 - 돌아가는 프로그램에 그치기 보단 점진적 개선 필요 / TDD 유지 [클린코드] 28일차~31일차 - 돌아가는 프로그램에 그치기 보단 점진적 개선 필요 클린코드 28일차 (p. 246 ~ 254 (14장) ) : 돌아가는 프로그램에 그치기 보단 점진적 개선 필요 클린코드 29일차 (p. 255 ~ 272 (14장) ) : TDD 기법 사용 클린코드 30일차 (p. 273 ~ 288 (14장) ) : 계속 통과하는 Test... 가 옳음을 ..! 클린코드 31일차 (p. 288 ~ 295 (14장) ) : 점진적으로 개선하기 == TDD 유지하기 클린코드 32일차 (p. 296 ~ 304 (14장) ) : 리팩토링은 루빅 큐브 맞추기와 비슷하다. 클린코드 33일차 (p. 305 ~ 310 (14장) ) : same old same old 클린코드 34일차 (p. 311 ~.. 2023. 12. 2.
[클린코드] 25일차/26일차/27일차 - 동시성 [클린코드] 25일차 - 동시성 클린코드 25일차 (p. 226 ~ 229 (13장) ) 클린코드 26일차 (p. 230 ~ 237 (13장) ) 클린코드 27일차 (p. 237 ~ 244 (13장) ) 13장 동시성 이 장에서는 여러 스레드를 동시에 돌리는 이유와 어려움 그리고 대처방법에 대해 이야기한다. 그리고 마지막으로 동시성을 테스트하는 방법과 문제점을 논한다. 0. 동시성이란? 싱글 코어에서 멀티 스레드를 동작시켜 동시에 실행되는 것 같이 보이는 것이다. 1. 동시성이 필요한 이유는 무엇인가? 동시성은 결합을 없애는 전략이다. 즉, 무엇what 과 언제when 를 분리하는 전략이다. 단일 스레드는 무엇을 언제 실행했는지 정지점을 정한 후 디버깅할 경우 파악할 수 있다. 디버깅하는 경우 좋지만 작.. 2023. 11. 30.
[클린코드] 24일차 - 창발성은 단순한 설계 규칙으로부터 [클린코드] 24일차 - 창발성은 단순한 설계 규칙으로부터 클린코드 24일차 (p. 216 ~ 223 (12장) ) 12장 창발성 창발성이란 ? 이전에 보이지 않았던 것이 어느 순간 갑자기 나타나는 것 1. 창발적 설계로 깔끔한 코드를 구현하자 착실하게 따르기만 하면 우수한 설계가 나오는 간단한 규칙 네 가지가 있다면 ? -> 네 가지 규칙이 창발성을 촉진한다면 ? 켄트 백은 다음 규칙을 따르면 설계는 '단순하다'고 말한다. 1) 모든 테스트를 실행한다. 2) 중복을 없앤다. 3) 프로그래머 의도를 표현한다. 4) 클래스와 메서드 수를 최소로 줄인다. 위 목록은 중요도 순이다. 2. 규칙 1: 모든 테스트를 실행한다. 9장 단위 테스트에서도 했던 말이지만 테스트는 중요하다. 테스트가 있어야 검증이 가능하.. 2023. 11. 19.