전체 글

가끔 독서도 하고, 가끔 운동도 하고, 가끔 여행을 떠나요. 어제보다 더 나은 사람이 되기위해 노력중입니다.🙂
반응형
독서/2024

[프로그래머의 뇌] CHAPTER11 코드를 작성하는 행위

1. 프로그래밍 중 이루어지는 다양한 활동 인지적 차원 표기법(CDN): 프로그래밍 언어 또는 코드베이스의 인지적 영향을 평가하고 검색, 이해, 전사, 증가, 탐구라는 다섯 가지 활동을 기술한다. 검색 검색은 코드베이스를 살펴보고 특정 정보를 검색하는 작업이다. 주로 STM에 무리를 가한다 부하를 줄이기 위해 종이나 별도의 문서에 노트를 작성하면 도움이 된다. 이해 이해는 활동을 수행할 때는 코드를 읽고 실행해 봄으로써 그 기능을 이해하게 된다. 전사(transcription) 전사는 단순히 코딩하는 활동이다 증가 증가는 검색, 이해, 전사가 합쳐진 활동이다 STM, 작업 기억 공간, LTM 모두 부하를 일으킨다. 탐구 CDN의 마직막 활동 STM, 작업 기억 공간, LTM 모두 부하를 일으킨다. 2. ..

독서/2024

[프로그래머의 뇌] CHAPTER10 복잡한 문제 해결을 더 잘하려면

1. 문제 해결이란 무엇인가? 문제 해결 요소 목표 상태, 즉 우리가 달성하고자 하는 것. 목표 상태에 도달하면 문제가 해결된 것으로 간주한다. 문제를 해결해야 하는 시작 상태 시작 상태에서 목표 상태에 도달하는 방법을 규정하는 규칙 상태 공간 프로그램을 해결할 때 고려할 수 있는 모든 단계를 문제의 상태 공간이라고 한다. 2. 프로그래밍 문제를 해결할 때 LTM의 역할은 무엇인가? 문제 해결 시 LTM 사용 문제를 이해한다. 계획을 세운다 계획을 실행한다. 두 되는 익숙한 문제를 해결하는 것이 더 쉽다 문제 해결을 위한 LTM 교육 방법 STM으로부터 문제의 상황에 대한 정보를 가져온다. 동시에 LTM은 관련 배경 지식을 검색한다. 문제 해결에 역할을 하는 두 가지 유형의 기억 절차적 기억: 운동 능력..

독서/2024

[프로그래머의 뇌] CHAPTER9 나쁜 코드와 인지 부하를 방지하는 두 가지 프레임워크

1. 코드 스멜이 인지 부하를 초래하는 이유 코드 스멜에 대한 간략한 소개 코드 스멜은 작동은 하지만 개선의 여지가 있는 코드를 의미한다. 메서드 수준 코드 스멜: 한 메서드가 많은 라인으로 되어 있고 많은 기능으로 갖는 경우 클래스 수준 코드 스멜: 하나의 클래스에 기능이 너무 많아 추상화가 안 되는 경우 혹은 기능이 너무 적어 추상화가 안 되는 경우 코드베이스 수준 코드 스멜: 중복코드가 존재하거나 메서들 간에 메시지 체인이 발생하는 경우 코드 스멜의 영향: 코드 스멜이 많다면 코드에 오류와 수정이 발생할 가능성이 많아진다. 코드 스멜이 인지 과정에 악영향을 미치는 방식 긴 매개변수 목록, 복잡한 스위치 문은 작업 기억 공간의 용량 초과를 발생시킨다 긴 메서 드는 효율적인 청킹이 불가능하다 중복 코드..

독서/2024

[프로그래머의 뇌] CHAPTER8 명명을 잘하는 방법

1. 이름이 중요한 이유 예루살렘 히브리 대학교의 전산학과 교수 드로 페이텔슨은 프로그래밍 작업에서 이름을 선택하는 실험을 통해 모호하지 않은 이름을 생각해 내는 것이 얼마나 어려운지를 증명했다. 명명이 중요한 이유 이름은 코드베이스의 상당 부분을 차지한다. 200만줄의 이클립스 소스코드에서 토큰의 33%, 문자의 72%가 식별자에 해당한다. 코드 리뷰 시 이름에 관해 많이 언급됨 4건 중 1건이 명칭과 관련한 언급을 포함했으며, 식별자 이름에 대한 언급은 9%를 차지하는 것으로 나타냈다. 이름은 문서화의 가장 쉬운 형태 프로그래머가 가장 많이 읽는 문서는 코드 내의 주석과 이름이다. 이름이 표식 역할 할 수 있다. 변수 이름은 주석문 외에도 코드를 이해하는 데 도움이 되는 중요한 표식이다. 명명에 대한..

독서/2024

[프로그래머의 뇌] CHAPTER7 생각의 버그

1. 왜 두 번째 프로그래밍 언어가 첫 번째보다 쉬울까? 전이(transfer) 이미 배운 지식이 다른 영역에서도 사용되는 현상 LTM에 저장된 정보를 사용해서 새로운 내용을 쉽게 배우는 과정을 학습 도중 전이 라고 부른다. 새로운 정보를 습득하면, 먼저 감각 기억 공간과 STM에 의해 처리된다. 그다음에 작업 기억 공간으로 전송되며, 작업 기억 공간은 이에 대해 생각하는 동시에 LTM에서 관련 정보를 검색한다. 관련 정보가 발견되면 작업 기억 공간에 전송되어 새로운 정보에 대해 사고하는 것을 돕는다. 기존 프로그래밍 지식을 활용할 가능성을 높이는 방법 숙달: 전문 프로그래머는 다른 프로그래밍 언어의 문제에 적용할 수 있는 전력, 청크, 정신 모델을 더 많이 알고 있어서 기존 프로그래밍 지식을 활용할 가..

독서/2024

[프로그래머의 뇌] CHAPTER6 코딩 문제 해결을 더 잘하려면

1. 모델을 사용해서 코드에 대해 생각해 보기 모델의 유익함 모델은 프로그램에 대한 정보를 다른 사람과 공유할 때 유용하다. 모델은 문제를 풀 때 도움이 된다. 모든 모델이 동일하게 유용한 것은 아니다. 2. 정신 모델 정신 모델이란 두뇌의 외부에서 만들어지지 않은 모델을 의미하며 풀어야 할 문제에 대해 추론하기 위해 사용할 수 있는 작업 기업 공간 내의 추상화이다. 정신 모델의 예로 트리 순회가 있다. 코드와 컴퓨터에는 우리가 순회하는 실제 트리는 존재하지 않는다. 우리가 트리 구조라고 생각하는 메모리 내의 값이 있을 뿐이다. 정신 모델 자세히 살펴보기 새로운 정신 모델 배우기 파일 ‘폴더’에 들어 있는 것이라고 피상적으로 생각하지만, 실은 그것이 하드 드라이브 내에서 정보가 저장된 위치에 대한 참조라..

독서/2024

[프로그래머의 뇌] CHAPTER5 코드를 더 깊이 있게 이해하기

1. ‘변수 역할’ 프레임워크 적절한 변수명은 표식으로 사용될 수 있고 읽고 있는 코드를 깊이 이해하는데 도움이 된다. 변수는 각자 다른 일을 한다. 최근 값 보유 자 역할(most recent holder): upperbound, factors목적값 보유자 역할(most wanted holder): max_prime_factors 스테퍼 역할(stepper): counter #소인수 분해 코드 upperbound = int(input('Upper bound?')) max_prime_factors = 0 for counter in range(upperbound): factors = prime_factors(counter) if factors > max_prime_factors: max_prime_fact..

기억보단 기록을/DevOps

Bitbucket Pipelines에서 Github Actions으로 이동 하기

Overview 해당 문서는 Bitbucket에서 관리하는 프로젝트를 Github로 이관하며 직면하는 배포 파이프라인 이전에 대한 해결 방법을 다루고 있습니다. 기존 Bitbucket 프로젝트 루트 경로의 bitbucket-pipelines.yml 파일의 내용이 Github Actions에서 요구되는 형태로 변환되고, ./github/workflows/github-actions.yml 로 이동되었으며, 그 외의 설정 파일(task-definition.json , task-definition-dev.json , Dockerfile)은 내용과 위치가 동일합니다. CI/CD Scenario Github의 master 또는 develop 브랜치에 코드가 push 됨 해당 프로젝트의 최신 상황에 대한 도커 이미지..

반응형