코드 없는 알고리즘과 데이터 구조 - 11. 스케줄링 알고리즘 (1)
·
✒️Notes/📕공부기록
코드 없는 알고리즘과 데이터 구조 (암스트롱 수베로 지음) 더보기 목차 Part 1 - 데이터 구조 Part 2 - 알고리즘 Part 3 - 알고리즘과 데이터 구조를 이해하는데 필요한 지식들 10. 무작위성 11. 스케줄링 알고리즘 📍운영체제(OS) ✅역할 - 일반적인 컴퓨터에서 CPU를 보조하는 자원은 유한하다 - 따라서 시스템에서 실행중인 여러 프로그램은 메모리와 데이터 처리 시간을 공유해야 한다 - 운영체제는 여러 프로그램이 동시에 실행될 수 있도록 추상화 메커니즘을 제공한다 ✅운영체제는 서버, 랩톱, 휴대폰뿐만 아니라, 복사기, 자동차, 주변기기 속 임베디드 시스템의 마이크로 컨트롤러에서도 실행된다 📍범용 운영체제(general-purpose operating system, GPOS) ✅일반적인 ..
코드 없는 알고리즘과 데이터 구조 - 10. 무작위성
·
✒️Notes/📕공부기록
코드 없는 알고리즘과 데이터 구조 (암스트롱 수베로 지음) 더보기 목차 Part 1 - 데이터 구조 Part 2 - 알고리즘 Part 3 - 알고리즘과 데이터 구조를 이해하는데 필요한 지식들 10. 무작위성 📍무작위성 - 식별할 수 있는 패턴 없이 예측 불가능하게 발생하는 성질 (동전을 던져 앞 or 뒤 가 나올 확률) - 사람에게 선천적으로 존재 (심리.. 충동적 행동 등) 반면 컴퓨터는 사람과 달리 항상 의도된 출력을 제공하도록 프로그래밍됨 - garbage in garbage out 프로그래밍에서는 수학의 확률 이론을 기반으로 (무작위) 난수 생성 📍하드웨어 이해하기 컴퓨터가 하드웨어적으로 난수를 생성하는 방법 뿐만 아니라 알고리즘 동작의 기반이 되는 컴퓨터 하드웨어를 이해해야 한다 트랜지스터 - ..
[원티드 FE 프리온보딩] 4-3 의존성
·
✒️Notes/🎥활동
원티드 프론트엔드 프리온보딩 (22.12.19 월 ~ 23.01.20 금) 📍의존성 특정 모듈이 동작하기 위해 다른 모듈을 필요로 하는 것 📍의존성 역전 원칙 - 유연성이 극대화된 시스템을 만들기 위한 원칙- 즉, 소스코드의 의존성이 추상에 의존하며, 구체에 의존하지 않는 것을 의미 📍추상과 구체 추상- 구체적인 구현 방법이 포함되어 있지 않은 형태- 구현해야 할 일, 이루어져야 하는 결과를 정의하는 것 구체- 해당 동작을 실질적으로 수행하기 위해 해야 하는 일련의 동작과 흐름 어플리케이션이 구체에 의존하게 되면, 구체가 변할 때마다 어플리케이션이 변화해야 하는 상황이 되어버림- 구체는 변화가 잦으므로, 가급적 구체에 의존하는 것을 최소화해야함 📍구체에 의존하는 예시 fetch("todos", { hea..
[원티드 FE 프리온보딩] 4-2. 횡단 관심사
·
✒️Notes/🎥활동
원티드 프론트엔드 프리온보딩 (22.12.19 월 ~ 23.01.20 금) 📍횡단 관심사란? - Cross-cutting concerns - 어플리케이션 내 여러 핵심 비즈니스 로직들에 걸쳐서 실행되어야 하는 동작들 예시 - 인증 & 인가 - 로깅 (로그 남기기) - 트랜잭션 처리 - 에러 처리 📍HTTP 통신에서 횡단 관심사 처리하기 - 프론트엔드에서 가장 흔하게 생각할 수 있는 횡단관심사는 인증 & 인가 - 백엔드 서버와 통신할 때 HTTP 프로토콜을 이용 - HTTP 프로토콜의 가장 큰 특징 : stateless 즉, 매번 별개의 요청으로 취급하며, 매번 header나 body에 값을 채워서 보내줘야 함 - 인증 예시 - httpClient.js class HttpClient { // 1. base..
[원티드 FE 프리온보딩] 4-1. 클린 코드, 관심사의 분리, React Custom Hook
·
✒️Notes/🎥활동
원티드 프론트엔드 프리온보딩 (22.12.19 월 ~ 23.01.20 금) 1. 클린 코드 📍프로그램 복잡도와 개발 생산성은 반비례 - 프로그램 복잡도가 올라갈 수록 코드 작성 및 수정에 걸리는 시간이 증가 - 개발 초기 단계부터 좋은 코드를 사용하지 않으면 Snowball로 인해 개발 생산성 악화에 Drive - 그럼 좋은 코드란? 2. 관심사의 분리(Seperation of Concerns), SoC 📍관심사란? 하나의 모듈이 수행하고자 하는 목적 (모듈 : 함수, 클래스 등의 단위) - 관심사의 분리란, 각 모듈들이 하나의 관심사만 처리하도록 모듈을 분리하는 것 📍관심사를 분리하는 이유? - 소프트웨어의 특정 부분이 변경되는 이유를 한가지로 제한하기 위해 - 소프트웨어는 유지보수(기존의 기능을 수정..
[원티드 FE 프리온보딩] 3-3. useEffect, Context API
·
✒️Notes/🎥활동
원티드 프론트엔드 프리온보딩 (22.12.19 월 ~ 23.01.20 금) 1. useEffect useEffect에서 의존성 배열 자세히 살펴보기 📍의존성 배열이란? 의존성이란? - A라는 요소가 온전히 동작하기 위해서 B, C 등의 다른 요소들을 필요로 한다면 - A는 B, C 등에 의존하고 있다고 표현 ⭐B, C 등이 A의 의존성이 된다 useEffect 의 의존성 배열 - effect 함수가 사용(의존하고 있는) 외부 값들의 모음 📍의존성 관점에서 useEffect 제대로 사용하기 ⭐가능한 의존성 적게 만들기 ⭐setState 함수도 의존성 배열에 넣어야 - bad // 많은 의존성 사용 function App() { const [count, setCount] = useState(0); useEf..
[원티드 FE 프리온보딩] 3-2. React 렌더링 최적화, React.memo, Advanced Hook
·
✒️Notes/🎥활동
원티드 프론트엔드 프리온보딩 (22.12.19 월 ~ 23.01.20 금) 1. 렌더링📍렌더링이란?브라우저에서의 렌더링 : DOM 요소를 계산하고 그려내는 것- JavaScript DOM API 가 담당 React의 렌더링- 실제 렌더링 과정은 React에서 대신 처리해주고, 개발자는 UI 를 설계하는데 집중 (선언형 프로그래밍)- React 내부에서 렌더링이 어떻게 실행되는지 이해하고, 이를 최적화할 필요가 있다 📍React에서 리렌더링이 발생하는 시점⭐state가 변했을 때⭐특정 컴포넌트의 state가 변하면, 해당 컴포넌트와 하위 컴포넌트가 모두 리렌더링됨 state를 사용하는 이유- state(변경될 수 있는 데이터)를 UI와 연동하기 위해서 📍React의 렌더링 과정1️⃣기존 컴포넌트의 U..
[원티드 FE 프리온보딩] 3-1. React 프로젝트 리팩토링 아이템
·
✒️Notes/🎥활동
원티드 프론트엔드 프리온보딩 (22.12.19 월 ~ 23.01.20 금) 📍필요없는 것들은 제거하기 1️⃣불필요한 파일 Create React App 의 경우 - reportWebVitals 등.. 2️⃣사용하지 않는 변수와 import 제거 - 뿐만 아니라, 사용하지 않는 라이브러리도 제거 📍상수화를 통한 가독성, 유지보수성 향상 예를 들어, signIn, signUp 같은 문자열 state에 따라 조건부 렌더링을 할 때, Snake Case로 상수를 만들어 사용하는 것이 좋다 - 문자열을 전부 바꿔야 하는 경우가 있을 수 있는데, 하나만 놓쳐도 에러를 유발한다 - 상수는 변하지 않는 값이므로 state가 아님 - 예시 const SIGN_IN = "SIGN_IN"; // 최상단에 배치 const S..