thumbnail

전체 글

✏️ Rewind/정기회고

[주간회고] 2023년 4월 첫째 주 (230403 ~ 230409)

0. 다음 주 쯤 CA 리액트 끝날 듯. 이외엔 별다른 특이사항이 없는 한 주였다.

📚 CS/알고리즘 (JS)

[알고리즘] 문제 해결 패턴과 도전과제 (자바스크립트)

지난 게시글 문제 해결 접근법과 이어지는 글입니다. 문제 해결 패턴 1. 빈도 카운터 (Frequency Counter) 자바스크립트 객체의 키-값 제어를 통해 다양한 값과 빈도를 수집 문제1 두 배열이 주어졌을 때, 한 배열 원소값들의 제곱을 담고 있는 다른 배열로 이루어진 경우 참을 반환하는 "Same" 함수를 작성하시오. (원소의 순서는 상관 없음) 해결1 이중 루프를 이용한 일반적인 해법, O(N^2) function same(arr1,arr2){ // 두 배열의 길이가 다른 경우 1차적으로 필터링 if(arr1.length !== arr2.length){ return false } for (let i=0;i

📚 CS/알고리즘 (JS)

[알고리즘] 문제 해결 접근법 (자바스크립트)

문제를 해결하기 위한 일련의 단계. 정답이 없음. 해답만이 존재할 뿐 문제 해결 접근법 0. 톺아보기 문제 이해 구제척 예시 탐색 문제 세분화 문제 해결 및 단순화 복기 및 재구성 1. 문제 이해 (Understand Problem) 코드를 입력하거나 보드에 작성하기 전 한 걸음 물러서서 직면한 과제를 확실히 이해하는 것. 당연하다고 들릴 수 있겠지만 굉장히 중요하다. 주어진 과제나 질문을 그대로 생각하는 게 아닌, 스스로의 방식으로 치환하여 이해하는 것 문제의 입력과, 내가 도출해내야 할 출력값은 무엇인가? 입력에 의해서만 출력값이 결정되는가? 문제 내부의 중요 데이터는 어떻게 레이블링하는가? 2. 구체적 사례 탐색 (Explore Examples) 앞선 문제 이해 과정을 마치고, 입력값과 출력값의 순..

📚 CS/운영체제

[OS] 프로세스 충돌해결 2 (Critical-Section Problem)

지난 강의 내용인 프로세스 충돌 해결 1과 이어집니다. 0. 복습 Critical Section 코드들이 Race Condition을 발생하지 않게 하기 위해서는 Critcal Section 전후에 Entry Section, Exit Section로 울타리를 두어 Mutual Exclusion을 만족시켜야 한다. 이 때 Entry Section은 울타리 영역 내부에 다른 프로세스가 실행 중인지 체크하고 비어 있는 경우 프로세스의 접근을 허용하는 역할을 하고, Exit Section은 울타리 영역 밖 다른 프로세스가 대기하고 있는 경우 영역 내부로 들어가도 되는지의 여부를 전달하는 역할을 한다. 지난 시간 말미에 소프트웨어적으로 이를 구현해보았으나 애로사항이 다소 발생하였고, 이를 하드웨어 지원을 받아 M..

📚 CS/알고리즘 (JS)

[알고리즘] 빅오 표기법과 배열, 객체의 성능 평가 (자바스크립트)

1. 빅오 표기법 1-1. 무수한 알고리즘 해결책에 대한 평가 기준 performance.now()를 통한 시간 차이 측정 컴퓨터의 연산 갯수 측정 1-2. 빅오 시간 복잡도 입력에 따른 연산 시간의 관계성 측정, 다소 추상적인 말이지만 '큰 흐름'에 집중 상수곱, 합의 연산은 단순화 1-3. 빅오 공간 복잡도 입력에 따라 차지하는 메모리의 관계성 측정 (공간 할당) Boolean, Numbers, undefiend, null은 상수 복잡도 O(1) (단순화 가능) String, Array, Object는 선형 복잡도 O(N) 1-4. 로그 지수함수의 역 대부분의 정렬, 탐색 알고리즘과 같이 로그 복잡도를 갖는 알고리즘들이 존재 2. 배열과 오브젝트의 성능 평가 2-1. 자바스크립트 기본 요소들의 성능 ..

✏️ Rewind/미디어회고

[미디어회고] 우아한 테크세미나 3월호 : 테크리더 3인이 말하는 개발자 원칙

본 회고는 (주)우아한 형제들의 우아한 테크 세미나 3월호 : 테크 리더 3인이 말하는 개발자 원칙 간 메모한 내용과 본인의 생각을 정리한 글입니다. 1. 제어할 수 없는 것에 의존하지 않기 (인프랩 이동욱) 기한을 지키는 것의 중요성. 아무리 급한 일정이라 해도 항상 일정한 퀄리티를 기한 내에 만들어 내는 노하우가 필요하다. 좋은 코드를 선택함에 있어 최근에 배운 내용을 활용하는 것도 좋지만 이들을 활용해 본인만의 기준과 원칙을 적용하여 빠르게 해결하는 능력이 중요하다. 따라서 선택의 순간마다 고민하는 사람보단, 원칙에 따라 빠르게 결정하고 중요한 것만 고민하는 것이 더 좋은 개발자가 아닌가. 이는 무조건 경험과 비례한다고 생각한다. 더 나아가 추가적인 기록이나, 주기적인 인지를 통해 가속도를 내어 효..

✏️ Rewind/정기회고

[분기회고] 2023년 1분기 (230101 ~ 230331)

0. 돌아보며 3월은 무섭도록 빠르게 지나갔다. 프로젝트 준비와 강의들 적응하다보니 벌써 4월이고, 2023년의 한 분기가 지났다. 본격적인 웹 공부부터 작은 개인 프로젝트도 해보고, 실제 서비스의 CSS파트 경험까지 꽤나 순항 중이라고 생각이 든다. 물론 속도를 더 낼 필요는 있다. 또 한 번 절실히 느끼는 건 진짜 시간이 빨리 간다는 점이다. 하루 하루를 의미 있게 보내자고 다시 한 번 다짐한다. 1. 다음 분기 계획 4월 초부터 리액트를 공부 중에 있는데, 보름 정도면 CA 커리큘럼은 끝마칠 것으로 보인다. 이후에는 드림코딩 리액트 강의를 통해 지반을 다질 예정이다. 2분기 내로 졸업작품을 끝낼 예정이고, 6월 말에는 부스트캠프나 우아한 테크캠프 등의 모집일정이 시작되기 때문에 이를 대비해 준비 중..

📚 CS/운영체제

[OS] 프로세스 충돌해결 1 (Concurrency Control)

1. 프로세스 충돌 컴퓨터 시스템 내부에서는 다양한 이벤트(쓰레드)들이 컴퓨터 자원을 사이에 두고 동시다발적으로 발생한다. 이들이 실행되며 충돌하는 경우가 빈번히 발생한다. Race condition 두 개 이상의 프로세스가 거의 동시에 접근하여 처리된 순서를 가릴 수 없는 상황을 말한다. Mutual exclusion 두 개 이상의 프로세스가 같은 메모리에 접근하는 상황에서 (공유 자원을 할당받아 사용할 떄) 한 번에 한 프로세스씩 액세스하도록 하는 성질. (상호배제) Race condition을 방지하기 위해선 Mutial Exclusion 성질이 만족되도록 프로그래밍되어야 한다. Critical section 공유 영역에서 값을 변경시키는 행위 Starvation 요청한 자원이 오랜 기간 동안 배정..

✏️ Rewind/정기회고

[주간회고] 2023년 3월 넷째 주 (230320 ~ 230326)

1. Recharge week ES6까지의 학습이 끝난 후, 지금까지의 상황을 돌아보고 향후 계획을 점검하는 시간을 가졌다. 모처럼 본가도 다녀옴. 첫 번째로 모딥다를 통한 ES6 복습을 진행하였다. 자바스크립트의 모든 내용을 총망라하는 거다 보니 분량이 꽤 많음. 다음 주 까지 조금 더 해야 마무리될 것 같다. 두 번째로는 올해 말 쯤을 목표로 하고 있는 부트캠프 일정들을 리스트업하였고, 후기와 요강들을 정리하며 준비해야 할 것들에 실체를 잡아갔다. 코딩 테스트를 더 철저하게 준비해야 할 필요성을 느꼈고, 그 외에 CS나 프레임워크 공부, 프로젝트는 지금까지 해온 것처럼 꾸준히 해나가면 될 듯 하다. 2. 코테 언어? 추가로 한 것이 코딩 테스트 준비 언어를 정하는 것이었다. 기존에는 파이썬으로 준비하..

📚 CS/운영체제

[OS] 프로세스 종료절차와 쓰레드 (Process Termination, Thread)

1. 프로세스 종료 절차 실행(running)을 끝마친 프로세스는 바로 컴퓨터 시스템에서 사라지는 것이 아니라, 일련의 과정 (exit - terminated - wait)을 거친다. 프로세스 종료 조건 exit() 시스템 콜을 호출받은 경우 처리할 수 없는 (non-handling) 시그널을 받은 경우 CPU 내부 프로그램 에러가 발생한 경우 부모 프로세스가 하위 프로세스의 종료를 요청할 경우 Exit (release) 과정 실행이 끝난 직후 처리되는 시스템 콜. 메인 메모리 중 커널 내의 PCB를 제외한 코드, 데이터, 스택 등을 회수한다. Terminated(zombie) 상태 Exit() 처리를 통해 프로세스는 Terminated 상태로 진입한다. 부모 프로세스에 의해 Wait() 시스템 콜이 호..

황재웅 Jaeppetto
심증을 물증으로