본문 바로가기

전체 글

(35)
[2주차] 학습 일지 tabindex: 키보드의 Tap 키를 눌러 이동할 때, 이동 순서를 지정하거나 특적 HTML 요소에 포커스를 가능하게 만들기 위해 사용되는 속성이다. 1. tabindex="0":  요소를 기본 순서에 포함시킨다.포커스 되지 않는 요소를 포커스 가능하게 만든다. 2. tabindex="-1": 요소를 탭 순서에서 제외한다. 3. tabindex="1": 탭 순서를 우선 지정한다. 숫자가 낮을수록 우선순위가 높다. tabindex는 접근성과 사용자 경험을 위해 키보드 탐색을 조정하는 중요한 속성이나, 과도하게 사용하면 오히려 혼란을 줄 수 있으니 정말 필요한 경우에만 적절히 사용하는 것을 권장한다고 한다.  box-sizing: 요소의 크기 계산 기준을 지정하는 CSS 속성content-box: 요소의 ..
[1주차] Git/Github Git이란?간단하게 말하면 '분산 버전 관리 시스템' 이라고 할 수 있다.그럼, 여기서 분산이란 무엇일까?중앙 서버에만 의존하지 않고, 로컬 저장소에 전체 히스토리와 파일을 복제하여 그 복사본으로 작업을 이어나갈 수 있다는 것이다. 그렇다면 버전관리는 왜 필요할까?개발 과정에서 발생하는 파일의 변경 사항을 체계적으로 추적하고 관리하기 위해 필요하다.  결과적으로, Git은 이러한 버전 관리를 통해 코드의 변경 사항을 추적하고 협업을 효율적으로 도와주는 분산형 버전 관리 시스템인 것이다. Github란?이러한 Git을 사용한 코드를 저장하고, 공유하고, 협업할 수 있는 온라인 플랫폼이다.인터넷에 코드를 올려 다른 사람들과 공유할 수 있다.  📌 규칙 1"수정"의 단계는 "의미"를 기준으로 사용자가 정해줘..
김민태의데브캠프_OT_학습일지 오늘(16일) 김민태의 프론트엔드 데브캠프 3기가 시작되었습니다 !해당 부트캠프는 평일 10시부터 7시까지 온라인으로 교육받는 형식으로, 금일 12월 16일부터 7월 11일까지 약 7개월 간의 과정입니다! 🫢🎊    계기저는 국민취업지원제도를 참여하며 부트캠프에 대해 관심을 가지게 되었어요.해당 부트 캠프는 현직자인 김민태 기술이사님이 직접 강의를 진행하시기도 하고, 프로젝트 등을 봤을 때 커리큘럼이 타 부트캠프보다 탄탄해보이고, 커뮤니티가 잘 활성화되어 있는 것 같아서 지원하게 되었습니다!    OT 당일 매니저님들을 통해 해당 부트캠프에 대한 설명을 듣고, Notion에서 개인 자기소개서를 작성하고 공유하는 시간을 가졌답니다!피어세션 시간을 통해 소회의실에서 랜덤으로 짜여진 수강생 분들과 10문 ..
Simple Diary - (1) 중복 제거 (state, onChange 합치기) 동작이 비슷한 state 하나로 묶기 before const [author, setAuthor] = useState(""); const [content, setContent] = useState(""); return ( 오늘의 일기장 { setAuthor(event.target.value); }} > { setContent(event.target.value); }} > ); after - 객체로 만들어 새로운 객체를 setState로 전달 const [state, setState] = useState({ author: "", content: "", }); return ( 오늘의 일기장 { setState({ author: event.target.value, content: state.content, })..
[운영체제] Synchronization - 3. Spin lock과 Mutex lock, Mutex와 Semaphore mutex lock - lock을 잡기 위해 오랜 시간을 기다려야 할 것 같으면 다른 작업을 동시에 진행할 수 있다. - busy waiting 하지 말고, blocking 되어 기다리자. - 자원을 단시간에 얻을 수 있게 되는 경우 차라리 spin lock이 효과적이다. context switching에 더 큰 자원을 낭비하게 될 수 있는 문제를 초래한다. spin lock - 문맥 교환(context switching)이 일어나지 않는다. - 다른 작업을 동시에 진행하지 못하고 진입 가능할 때 까지 계속 기다리는 busy waiting 방식이다. - lock을 잡을 때 까지 끊임없는 무한 루프를 통해 critical section에 진입을 재시도하기 때문에, 하나의 스레드가 계속 CPU를 점유하고 있..
[운영체제] Synchronization - 2 Spinlock : 잡으려는 lock이 avaliable 해 질 때 까지 계속 루프를 돌며 진입을 재시도한다. 이른바 바쁘게 기다리는 busy waiting의 한 종류이다. Busy waiting : lock을 잡기 위해 다른 작업을 수행하지 않고 계속해서 기다리는 경우. Sofrware-only Algorithm Peterson's Algorithm 동기화 문제를 해결하기 위해 처음으로 고안된 방법 오직 두개의 context만이 존재하는 상황을 가정한다. 전역변수 flag, turn 선언 flag: critical section에 들어갈 준비가 되었는지, flag[0] = true; turn: 누가 critical section에 들어갈 차례인지 문제점 두개의 context만 존재하는 상황에서만 가능 ..
[운영체제] Synchronization - 1 하나의 address space에 서로 다른 스레드들이 동시에 접근하면 문제가 발생한다. Race Condition 두 개 이상 프로세스/스레드가 shared resource에 동시에 concurrent하게 접근함으로써 결과 값이 확정 되지가 않고, 그때 그때 실행할 때마다 조금씩 바뀌는 현상 두 개 이상의 concurrent 한 프로세스, 스레드들이 공유 자원에 접근 할 때 동기화 해결 과정없이 수행하는 상황 race condition을 방지하기 위한 기법 → synchronization Critical Section 코드에서 두개 이상의 프로세스가 동시에 리소스를 업데이트 할 수 있는 구간. 각 프로세스에서 공유 데이터에 접근하는 프로그램 코드 부분. 여러 개의 스레드가 수행되는 프로그램에서 각 프로..
[운영체제] Real-time System이란? Real-time Task : 시스템이 처리하는 일이 deadline이 존재하거나 시간에 대해서 어느 시간 내로 처리해야 하는 그런 류의 specification이 정해지는 일들. Real-time Task들이 있는 System => Real-time System Soft real-time systems ex) linux real-time task 와 Non-real-time task들이 혼재되어 있는 상황에서, 시스템이 real-time task를 조금 더 신경써서 처리해 주기는 하지만, 무조건 deadline에 맞춰서 끝내줄거라는 보장이 없는 시스템. real-time task를 조금 더 고려 하겠으나, 100퍼 보장 못함. real-time을 아예 제공하지 않진 않음. Hard real-time s..