기획도 어느정도 프로젝트에 포함된다고 생각되기는 하지만
아무래도 직접 뭔가를 하는 것은 오늘이 처음인 것 같아서 오늘을 1일차로 정했다.
요구 사항 정의서를 담당하신 동기분이 어제 회의 후 빠르게 정리해주셨고
중요 페이지는 홈, 북마크, 보유, 마이페이지로 4개라고 볼 수 있었다.
관계형이 아닌 페이지형이라고 해서
아무리 검색해도 페이지형 데이터베이스라는 것을 찾기는 어려웠다.
데이터베이스의 구조를 보고 레퍼런스들을 본 결과
관계까지 보면 어려우니 그냥 페이지마다 필요한 데이터 정의서? 같은 느낌을 말씀하신 것 같았다.
diagrams라는 페이지에서 이것저것 만저보며 조금 연습하고
데이터, 상태가 거의 없는 페이지들을 채운 다음 질문드리자
이렇게 하면 된다고 말씀하셔서 안심하고 나머지 데이터를 채우려고 한다.
생각보다 요구사항 명세서의 기능이 많은데
내부에서 사용하는 것 뿐만 아니라 요청할 데이터 양식과
받을 데이터 양식도 문제인 것 같았다.
데이터 정의를 객체로 넣어도 되는지는 모르겠지만 일단 객체로 만들 수 밖에 없었다.
첫 페이지에 api와 거의 모든 데이터가 포함되어 있어 오래걸렸는데
나머지 페이지는 사실상 boolean값을 제외하고는 거의 그대로 사용해서 간단하게 마무리 할 수 있었다.(이게 맞는지는 모르지만)
구조를 보면서 필요 데이터를 찾고 정리하는 것이
개인적으로 작업할 때 바로 axios처리하는 것보다 오래 걸린 것 같지만
이것 또한 좋은 경험이 될 수 있을 것 같다.

1.IPC(Inter Process Communication)는 기존에 설명했던 내용 중
프로세스는 단일작업이고 스레드는 서로 데이터를 공유해 충돌 위험이 있으며
프로세스는 위험이 없는 대신 무거워질 수 있다는 단점이 있다고 했는데
IPC의 명칭만 봐도 알겠지만 IPC는 프로세스의 소통을 가능하게 해준다.
IPC는 아래와 같은 종류들이 있다.
PIPE - 읽기, 쓰기를 각각 나눠 단방향 통신만 가능한 방식으로
단방향이기 때문에 구현이 쉽지만 양방향은 복잡하며
같은 부모를 가지고 있는 프로세스 사이에서만 통신할 수 있다.
Named PIPE - PIPE와 같은 단방향 통신이지만
이름으로 식별할 수 있기 때문에 모든 프로세스와 통신이 가능하다.
Message Queue - FIFO(선입선출) 형태로 메모리에서 데이터를 관리하며
여러개의 프로세스가 동시에 데이터를 다룰 수 있다.
Shared Memory - 주소 공간의 일부를 공유하며
공유 영역을 통해 통신을 하는 방식으로 가장 빠르지만 구현하기 어렵다.
Memory Map - Shared Memory와 유사하지만 파일을 메모리에 맵핑시킨다는 차이가 있다.
Socket - 클라이언트와 서버의 소통에 사용되며
서버에서는 bind, listen, accept의 명령어를 사용하고
클라이언트는 connect, close를 사용한다.
Semaphore - 한번에 하나의 프로세스만 접근 가능하도록 해 프로세스 사이의 데이터를 보호
(1).백준 13241 최소공배수는
유클리드 호제법을 사용해 최소공약수를 구한 다음
두 수의 곱에서 최소공약수를 나누는 방법으로 해결했다.
let [a,b] = `121 199`.split(' ').map(Number)
let x = a
let y = b
while(x%y){
let z = y
y = x%y
x = z
}
console.log(a*b/y)'회고' 카테고리의 다른 글
| [취업준비일지] - 41 - 스터디 프로젝트 3일차 (3) | 2022.11.30 |
|---|---|
| [취업준비일지] - 40 - 스터디 프로젝트 2일차 (0) | 2022.11.29 |
| [취업준비일지] - 38 (0) | 2022.11.27 |
| [취업준비일지] - 37 (0) | 2022.11.26 |
| [취업준비일지] - 36 (0) | 2022.11.25 |
