DevLog 101

TIL_230309

오늘 한 일 [DONE] CS 스터디에서 운영체제를 공부했다. 직무 면접 스터디를 진행했다. DFS/BFS 알고리즘 문제를 풀었다. 1️⃣ 공유 자원 (Shared Resource) 공유 자원 : 각 프로세스, 스레드가 함께 접근할 수 있는 자원 (모니터, 프린터, 메모리, 파일 등) 경쟁 상태(Race Condition) : 공유 자원에 2개 이상의 프로세스나 스레드가 읽거나 쓰는 상태 2️⃣ 임계 영역 (Critical Section) 임계 영역 : 둘 이상의 프로세스, 스레드가 공유 자원에 접근할 때 순서 등의 이유로 결과가 달라지는 코드 영역. 해결 방법 : 뮤텍스, 세마포어, 모니터 해결 방법 조건 1. 상호 배제 : 한 프로세스가 임계 영역에 들어갔을 때 다른 프로세스는 접근 X 2. 한정 대..

TIL_230308

오늘 한 일 [DONE] CS 스터디에서 운영체제 공부한 내용 복습하고 객체지향 프로그래밍을 공부했다. DFS/BFS 알고리즘 문제를 풀었다. DFS, BFS 모두 가능한 문제라서 둘 다 구현해 보았다. 앞으로도 가능하면 두 개 다 구현해 봐야겠다. 직무 면접 답변 준비를 위해서 예전 CS 자료들을 정리했다. 📝오늘 배운 내용 간단 요약 1️⃣ 객체지향 프로그래밍 어떤 사물을 상태와 행위를 가진 객체로 추상화하여, 객체들 간 관계, 상호작용을 프로그래밍하는 방법. 특징 1. 상속 (Inheritance) : 부모 클래스의 내용을 하위 클래스가 그대로 사용 가능하며 확장 가능. 관계 부여 가능. 2. 캡슐화 (Encapsulation) : 상태와 행위를 객체로 묶어 정보를 은닉. 3. 다형성 (Polymo..

TIL_230302-0307

더보기 3월 2일 (목) CS 스터디 운영체제 공부 - 프로세스 상태와 프로세스 메모리 구조 3월 3일 (금) 지금까지 배운 디자인 패턴 총 복습, 헤드퍼스트 디자인 패턴 독서로 보충. 3월 5일 (일) 채용 공고 확인, 자소서 초안, 테크트리 정리 3월 6일 (월) CS 스터디 운영체제 공부 - PCB, 멀티 프로세싱, 스레드와 멀티스레딩 Android 프로젝트 중복 클릭 방지 로직 추가 3월 7일 (화) 프로젝트 코드 리뷰 및 PR 완료 DFS/BFS 알고리즘 문제 해결 및 피드백 1️⃣ 프로세스 상태 (Process State) New : 프로세스 생성 (fork or exec) Ready : 메모리에서 대기 상태. 당장 실행 가능한 준비 상태 Running : 메모리를 할당받은 상태에서 CPU 소..

TIL_230301

오늘 한 일 [DONE] CS 스터디에서 운영체제 공부한 내용 복습하고 프로그래밍 패러다임을 공부했다. 이항 계수 알고리즘 문제를 풀었다. 푸는 방법이 정말 다양한 문제였다. 내일 더 풀어봐야겠다. 📝오늘 배운 내용 간단 요약 1️⃣ 프로그래밍 패러다임 (Programming Paradigm) 프로그래머에게 프로그래밍 관점을 갖게 하고 프로그래밍을 어떤 방식으로 하는지 결정할 수 있게 해주는 개발 방법론. 여러 방식으로 나눌 수 있는데 대표적으로 선언형과 명령형 언어로 나누는 방식이 있다. 2️⃣ 선언형 프로그래밍 (Declarative Programming) '무엇을' 풀어내는가에 집중하는 패러다임. "프로그램은 함수로 이루어진 것"이라는 명제가 담겨 있다. 선언형은 함수형을 하위 분류로 가진다. 함수..

TIL_230228

오늘 한 일 [DONE] CS 스터디에서 어제 배운 운영체제 파트를 복습했다. 스레싱과 메모리 할당에 대한 내용이다. CS 스터디에서 운영체제 파트를 공부했다. 페이지 교체 알고리즘과 프로세스 컴파일 과정을 알아보았다. 저번에 틀렸던 BFS 알고리즘 문제를 해결했다. 기초가 탄탄하면 오류를 빠르게 잡을 수 있음을 느꼈다. 다시 TIL을 쓴다! 나를 위해서 쓰는 것임을 잊지 말고 부담을 내려 놓자. 📝오늘 배운 내용 간단 요약 1️⃣ 페이지 교체 알고리즘 가상 메모리에는 있지만 물리 메모리 RAM에는 없는 것에 접근할 때 발생하는 페이지 폴트, 그리고 필요한 내용을 물리 메모리에 올리기 위해 내용을 바꾸는 스와핑. 이 스와핑이 일어날 때 교체해 줄 대상을 결정하는 알고리즘이 페이지 교체 알고리즘이다. FI..

TIL_230215

오늘 한 일 [DONE] CS 스터디에서 네트워크 부분 복습 및 디자인 패턴 공부. MVC, MVP, MVVM은 좀 더 보충할 필요가 있어 보인다. 알고리즘 문제 풀기 📝오늘 배운 내용 간단 요약 1️⃣ MVC 패턴, MVP 패턴, MVVM 패턴 MVC 패턴과 그에서 파생된 패턴들인 MVP, MVVM 패턴을 배웠다. 공통점은 UI와 비즈니스 로직을 분리해 각 구성요소 각자 역할에 집중하도록 만들어졌다는 것이다. 재사용성을 높이고 확장성이 용이하다는 장점이 있다. MVC : Model-View-Controller MVP : Model-View-Presenter, Controller가 Presenter로 교체된 패턴. MVVM : Model-View-ViewModel, Controller가 ViewModel..

TIL_230214

오늘 한 일 [DONE] CS 스터디에서 네트워크 부분을 공부했다. 네트워크 기기에는 어떤 것이 있는지, 그리고 IP에 대해 공부했다. DFS, BFS 알고리즘 문제를 풀었다. 📝오늘 배운 내용 간단 요약 1️⃣ 네트워크 기기 스위치란, 장비를 연결하며 통신 중재 및 연결 포트로만 신호 전송하는 네트워크 장비 (Ln 스위치 : OSI 7 계층 중 n계층의 스위치.) 애플리케이션 계층 : L7 스위치 전송 계층 : L4 스위치 인터넷 계층 : 라우터, L3 스위치(HW기반 라우팅 담당), 라우터(Router) 데이터 링크 계층 : L2 스위치, 브리지 물리 계층 : NIC(Network Interface Card), 리피터(Repeater), AP(Access Point) L7 스위치 : 로드밸런서(서버의..

TIL_230210

오늘 한 일 [DONE] CS 스터디에서 디자인 패턴 전체 복습하는 날이라 지금까지 배웠던 디자인 패턴을 주어진 요구사항에 맞게 코드를 작성하는 활동을 했다. 확실히 개념이랑 왜 쓰는지 알아도 코드를 작성해보지 않으면 그 디자인 패턴을 안다고 말하기 힘든 것 같다. 알고리즘 문제를 풀었다. 처음 골랐던 문제는 답이 틀려서 코드 틀린 부분 찾는다고 많은 시간을 소요했다. 해결이 안 되길래 일단 다른 문제부터 먼저 해결했다. 왜 틀린 건지 나중에 다시 짚어봐야겠다.

TIL_230209

오늘 한 일 [DONE] CS 스터디에서 네트워크 부분을 공부했다. 각자 프로젝트 진행하면서 공부한 부분, 문제 원인과 현상, 그리고 해결 방법을 고민한 내용을 공유하는 시간을 가졌다. 나는 중복 클릭 문제 해결 방법을 고민한 과정을 공유했다. 다른 팀원은 타이머 스레드의 백그라운드 동작 시 생기는 문제점에 대해 공유했는데 그 부분이 흥미로웠다. 프로젝트 코드 읽으면서 부족한 개념을 보충하는 시간을 가졌다. 오늘은 ViewModel 개념을 다시 잡았다. 알고리즘 문제를 풀었다. 너무 빠르게 풀어서 기분이 묘했는데 제한 조건을 굉장히 아슬아슬하게 통과했다. 설계 과정에서 놓친 게 있는지 체크해 봐야겠다. 📝오늘 배운 내용 간단 요약 1️⃣ Link Layer (링크 계층) 유선 LAN(IEEE 802.3)..

TIL_230208

오늘 한 일 [DONE] 안드로이드 개발자 로드맵을 다시 한번 살펴보았다. 네트워크 CS 공부 내용 복습 진행. 다른 사람에게 설명하려고 하니 어느 부분의 개념이 약한지 바로 알 수 있어서 좋았다. 이터레이터 디자인 패턴에 대해 스터디했다. 오늘은 구현 문제를 풀었다. 구현 문제는 어떻게 피드백 해야할지 감이 안 와서 다음 알고리즘 공부할 때 이 부분을 짚고 넘어가는 게 좋을 것 같다. 📝오늘 배운 내용 간단 요약 1️⃣ 이터레이터 패턴 (Iterator Pattern) 객체 지향 프로그래밍에서 iterator를 사용하여 container, collection에 접근하는 디자인 패턴. 이 패턴은 container에서 구현 부분을 분리시켜서 구현에 의존하지 않게 한다. 그래서 iterator가 하나의 인터..