분류 전체보기

3. Process (1) ✨ 프로세스의 개념 프로세스는 실행 중인 프로그램을 의미한다. (Process is a program in execution) 프로그램이 정확하게 언제 시작하고 종료하는지를 나타내기 위해 사용 프로세스의 문맥(context) 현재 프로세스의 상태를 나타내는 모든 요소 CPU 수행 상태를 나타내는 하드웨어 문맥 Program Counter CPU안에서 어떤 프로세스인지 구분해 줌 프로세스 code의 진행 위치를 알려줌 각종 register 프로세스의 주소공간 code, data, stack 프로세스 관련 커널 자료구조 PCB (Process Control Block) Kernel stack 프로세스의 문맥이 필요한 이유 타임 쉐어링 때문에 다시 작업을 이어서 하려고 할 때 문맥을..
System Structure & Program Execution (2) ✨ 동기식 입출력과 비동기식 입출력 동기식 입출력 (Synchronous I/O) i/o 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어가며, 다음 작업을 수행할 수 있음 처리하는데 데이터가 꼭 필요할 때 사용 read 구현 방법1 i/o 끝날 때까지 CPU일 안 시키고 대기시킴 => 낭비 매 시점 하나의 I/O만 일어날 수 있음 구현 방법 2 i/o 가 완료될 때까지 해당 프로그램에게서 CPU를 뺴앗음 i/o 처리를 기다리는 줄에 그 프로그램을 줄 세움 비동기식 입출력 (Asynchronous I/O) i/o가 시작된 후 입출력 작업이 끝나기를 기다리지 않고 제어가 사용자 프로그램에 즉시 넘어가 다음 작업을 수..
Chapter 2. System Structure & Program Execution(1) 🎈 컴퓨터 시스템 구조 Computer CPU + Memory를 (좁은 의미의) 컴퓨터라고 한다. I/O device 나머지는 IO 디바이스로 이루어져 있다. Input은 입력, Output은 출력이다. CPU는 매 클럭 사이클 마다 인터럽션 interruption을 수행해 input을 읽어오고, output을 수행한다. CPU 매 클럭 사이클마다 메모리에서 기계어를 읽어다가 실행한다 CPU는 메모리하고만 소통한다 Timer time sharing을 구현하기 위한 하드웨어 interrupt 발생 시간 설정한다 프로세스가 혼자서 계속 CPU 점유하는 것을 막는다 Memory main memory : CPU의 작업공간..
타입 지정하는 방법 변수명 : 타입명 let name : string = 'kim'; let age : number = 123; age = 'oh' // 에러 let name :string[] = ['kim', 'park'] let age : {a:number} = { a : 3 } // array 혹은 object 자료는 이렇게 타입지정 가능 Union Type let name : string | number = 'kim' 변수에 타입을 여러 개 지정 가능하다. Type을 변수에 담아서 사용하기 type NameType = string | number; let name : NameType = 'kim' literal type type NameType = 'kim' | 'park'; let name : ..
기능명세서에 대한 개념과 작성하는 방법이 궁금하다면 아래 링크를 확인해 주세요 https://neuri.tistory.com/entry/사이드-프로젝트-3편-기능명세서-작성하기-Notion [기능명세서] 기능명세서 개념 및 중요성 기능명세서 (Functional Specification) 아이디어를 정리했으면 서비스로 표현해야겠죠? 서비스로 표현하기 전에 먼저 가능한 기능인지 점검해야 합니다. 💡 기능명세서란? 구현하고자 하는 서비스의 neuri.tistory.com 저번에 와이어프레임 작성하고 오늘 바로 프로젝트 초기세팅에 들어가려고 했으나 기능에 대한 완벽한 정리를 해놔야 마음이 편할 것 같아서 기능명세서를 작성하게 되었습니다. 제가 저번에 올렸던 와이어프레임을 기반으로 화면마다 들어가야 하는 기능들..
기능명세서 (Functional Specification) 아이디어를 정리했으면 서비스로 표현해야겠죠? 서비스로 표현하기 전에 먼저 가능한 기능인지 점검해야 합니다. 💡 기능명세서란? 구현하고자 하는 서비스의 기능을 정리한 문서로, 주로 개발자랑 최종 결과물에 대해 협의하기 위해 사용한다. 💡 기능명세서 작성하는 방법 추천하는 방법은 Notion이나 구글스프레드시트의 표를 사용해 실시간으로 이야기 나누는 것입니다 원하는 기능들을 카테고리별로 나열하고, 상세 설명을 기재한 다음 개발자와 함께 가능여부를 체크하는 거죠. 저와 같이 사이드프로젝트를 진행하는 상황에서는 거창하게 작성할 필요 없습니다! 기능이 무엇인지 명확하게 보이기만 하면 되죠 검색해서 찾아보면 꽤 괜찮은 기능명세서 템플릿도 많더라고요. 템플릿..
1. 와이어프레임 제작 페이지 구분 메인페이지 레시피 추천 페이지 레시피 상세 페이지 마이페이지 뷰포트 구분 데스크톱 : 1008px 이상 태블릿 : 641px ~ 1007px 모바일 : 640px 이하 참고 자료 핀터레스트 오'키친(O'Kitchen) 데스크톱용 화면을 만들어 놓으니까 태블릿용, 모바일용 화면 제작 속도에 불이 붙더라고요. 금방 끝났습니다. 후후 와이어프레임에 벗어나고싶었던 것도 한몫했어요. 디자인에 고민하는 시간이 아까웠거든요 T-T. 구현해보고 싶은 기능들이 많았어서 빨리 개발하고 싶었습니다. 이제 컴포넌트 설계해 보고 styled-component 사용법 다시 봐야 할 것 같아요. 테마 지정해서 일정하게 스타일 적용할 때는 styled-component를 사용하고 간단히 수정할 부..
예상 작업 기간 2일, 여기까지 만드는 데 걸린 기간 3일 후후 페이지가 별로 없어서 길면 2일이겠거니 했는데 생각이 짧았습니다. 굉장히 오래 걸리네요. 다양한 와이어프레임 자료 검색 프로젝트랑 어울리게 UI 배치 컴포넌트 어떻게 설계할지 계속 생각 마음에 들 때까지 1,2,3 반복했는데 너무 오래 걸려서 작업하다가 중간중간에 고치려고 합니다. 처음부터 완벽하게 하려고하니까 제대로 시작도 안했는데 지치는 것 같아서 진행 중간에 고치는 방향으로 가보려구요 1008px 이상 데스크톱용은 대충 마무리된 것 같고, 이제 태블릿 용하고 모바일용만 크기 줄여서 만들면 될 것 같아요. 싸피에서는 3일 만에 figma로 프로토타입까지 완성했었는데 그때는 어떻게 한 거였냐.. 틈틈이 사이드프로젝트 진행해서 2월 안에 배..
· 📝 Web
1️⃣ SSR과 CSR에서의 주요 차이점은 무엇인가요? 💡 CSR(Client Side Rendering) 렌더링이 클라이언트 쪽에서 일어나는 방식 CSR의 단계 유저가 웹사이트에 방문하면, 브라우저가 서버에 콘텐츠를 요청한다. 이에 서버는 빈 뼈대만 있는 HTML을 응답으로 보내준다. 브라우저가 연결된 JavaScript 링크를 통해 서버로부터 다시 JavaScript 파일을 다운로드한다. (이때, 유저는 아무것도 볼 수 없다.) 다운 완료된 JavaScript가 동적으로 페이지를 만들어 브라우저에 띄워준다. 즉, 서버에서 처리 없이 클라이언트로 보내주기 때문에 자바스크립트가 모두 다운로드 되고 실행이 끝나기 전까지 사용자는 볼 수 있는 것이 없다. 💡 SSR(Server Side Rendering) ..
💡 파이썬 2차원 배열 회전하기 zip() 사용하기 : 시계 방향으로 회전 mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] new_list = list(map(list, zip(*mylist[::-1]))) for i in mylist:# 기존 리스트 print(i) print() for i in new_list:# 회전한 리스트 print(i) 실행결과 [1, 2, 3] [4, 5, 6] [7, 8, 9] [7, 4, 1] [8, 5, 2] [9, 6, 3] zip() 사용하기 : 반시계 방향으로 회전 mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] new_list = list(map(list, zip(*mylist)))[::-1] for i i..
늘코딩
'분류 전체보기' 카테고리의 글 목록 (4 Page)