반응형 Programming148 [혼공학습단 9기] 혼.공.컴.운. - 13. 교착상태 13-1 교착상태란 교착 상태란 무엇이며, 그를 표현하는 자원 할당 그래프와 교착 상태의 발생 원인을 예시를 통해 알아보겠습니다. 프로세스를 실행하기 위해 자원이 필요한데, 두 개 이상의 프로세스가 각자 가지고 있는 자원을 무작정 기다린다면 그 어떤 프로세스도 더 이상 진행할 수 없는 교착 상태가 된다. 식사하는 철학자 문제 식사하는 철학자 문제: 교착 상태를 설명하기 위한 아주 고전적이고 재미있는 문제 상황. 만약 원탁에 다섯 명의 철학자가 앉아 있고 서로의 사이사이에 총 다섯 개의 포크가 있고, 모두가 동시에 빈 포크가 어떤 것인지 생각하고 동시에 포크를 집어 식사를 해야 한다면, 영원히 아무도 식사할 수 없는 상황이 벌어질 수 있다. 교착 상태: 이렇게 일어나지 않을 사건을 기다리며 진행이 멈춰 버.. Programming/Computer Science 2023. 2. 20. [Next.js 13] 공식 문서 Data Fetching 1(Fundamentals ~ Caching) 나만의 홈페이지 만들기 프로젝트를 진행하면서 이제 data fetching을 해야 할 때가 왔다. 그런데 Next 13의 data fetching은 Next 12와 변경점이 굉장히 많았다.(12도 잘 모르는데) 관련 공식문서를 전부 번역해보면서 공부해보자. https://beta.nextjs.org/docs/data-fetching/fundamentals Data Fetching: Fundamentals | Next.js Learn the fundamentals of data fetching with React and Next.js. beta.nextjs.org https://github.com/acdlite/rfcs/blob/first-class-promises/text/0000-first-class-.. Programming/Next.js 2023. 2. 19. [JavaScript] new Date()로 생성된 시간을 한국 시간으로 바꾸기 최근 일하면서 특정 시간대에만 배너를 표시하는 작업을 한 일이 있었다. 당연히 쉽게 반영이 될 거라고 생각했는데, 실제 사이트에서는 마치 코드가 잘못된 것처럼 작동하지 않았다. 이유는 기업 서버가 미국(혹은 다른 나라)을 거쳐 가면서 new Date() 시간이 한국 시간이 아닌 다른 어딘가의 시간으로 출력됐던 것이었고, 이 때문에 항상 한국 기준 (UTC +8)으로 바꿔주는 작업이 필요했다. 소스코드 const now = new Date() // 서버 시간 기준 현재 로컬 시간 const GMTNow = now.getTime() + now.getTimezoneOffset() * 60 * 1000 // GMT 현재 시간 // now.getTime(): 1970년 1월 1일 00:00:00 GMT와 주어진 .. Programming/Javascript, Typescript 2023. 2. 18. [네트워크] SSL이란? Programming/Computer Science 2023. 2. 14. [혼공스터디 9기] 혼.공.컴.운. - 12. 프로세스 동기화(필수, 선택 미션 포함) 필수미션 1. 뮤텍스 락과 세마포에 대한 설명으로 옳지 않은 것을 고르세요. 뮤텍스 락은 임계 구역을 잠근 뒤 임계 구역에 진입함으로써 상호 배제를 위한 동기화를 이룹니다. 세마포는 공유 자원이 여러 개 있는 상황에서도 이용할 수 있습니다. 세마포를 이용해 프로세스 실행 순서 제어를 위한 동기화도 이룰 수 있습니다. 세마포를 이용하면 반드시 바쁜 대기를 해야 합니다. 답: 4 해설: 세마포는 공유 자원이 여러 개 있는 상황에 적용이 가능한 동기화 도구다. 바쁜 대기는 반복적으로 lock을 확인하는 것인데, 이는 자물쇠 방식을 활용하는 뮤텍스 락에 적용된다. 12-1 동기화란 프로세스들은 서로 협력하여 실행되기도 한다. 이런 프로세스들의 실행 순서와 자원의 일관성을 보장하기 위해 반드시 동기화되어야 한다... Programming/Computer Science 2023. 2. 13. [JavaScript] 화살표 함수 정의 전통적인 함수 표현보다 더 간편하게 함수를 작성할 수 있는 대안이다. 기본 형태 let func = (arg1, arg2, ...argN) => expression // 아래 함수 표현식의 축약 버전이다. let func = function(arg1, arg2, ...argN) { return expression; } // 인수가 하나도 없다면, 괄호를 비워 놓는다. 이 때 괄호는 생략 불가하다. let sayHi = () => alert("안녕하세요!") sayHi() 본문이 여러 줄인 화살표 함수는 '중괄호'와 'return'을 사용해야 한다. let sum = (a, b) => { let result = a + b retun result } alert(sum(1, 2)) // 3 + 화살표 함.. Programming/Javascript, Typescript 2023. 2. 9. [Next.js 13] Next.js 13버전의 서버 중심 라우팅과 클라이언트 사이드 네비게이션 정리 이번 주에 공식문서 Page and Layouts 까지 읽었고, 이번엔 Next.js의 Linking and Lavigating에 대해 배워 보자. 따로 링크되지 않은 모든 설명은 Next.js 공식문서가 출처다. Routing: Fundamentals | Next.js ... beta.nextjs.org 서론: Next.js 13은 서버가 라우팅하고 클라이언트가 네비게이트한다. pages 디렉토리와는 달리, app 디렉토리의 new! 라우터는 서버 중심 라우팅을 사용한다. 이는 Server Component와 서버에서의 data fetching와 궤를 같이 하는 것이다. 클라이언트는 router 지도를 다운 받을 필요가 없다 . (app directory의 모든 컴포넌트들은 디폴트로 RSC(React .. Programming/Next.js 2023. 2. 5. 이전 1 ··· 3 4 5 6 7 8 9 ··· 22 다음