Development
[WIL] 프론트엔드, 백엔드 분리 프로젝트 / 알고리즘 공부
개발자 강정
2022. 2. 13. 22:42
자바스크립트 코딩테스트
https://www.acmicpc.net/problem/19583
19583번: 싸이버개강총회
첫번째 줄에는 개강총회를 시작한 시간 S, 개강총회를 끝낸 시간 E, 개강총회 스트리밍을 끝낸 시간 Q가 주어진다. (00:00 ≤ S < E < Q ≤ 23:59) 각 시간은 HH:MM의 형식으로 주어진다. 두번째 줄부터는
www.acmicpc.net
const fs = require('fs')
const input = fs.readFileSync('dev/stdin').toString().trim().split('\n')
const [timesString, ...logsString] = input
const times = timesString
.split(' ')
.map((x) => x.split(':'))
.map((x) => x.map((x) => +x))
.map((x) => {
return x[0] * 60 + x[1]
})
const logs = logsString
.map((x) => x.split(' '))
.map((x) => {
const hourMinute = x[0].split(':').map((x) => +x)
const minutes = hourMinute[0] * 60 + hourMinute[1]
return [minutes, x[1]]
})
const before = logs.filter((x) => {
return x[0] <= times[0]
})
const after = logs.filter((x) => {
return x[0] >= times[1] && x[0] <= times[2]
})
const dict = {}
let count = 0
for (const log of before) {
dict[log[1]] = true
}
for (const log of after) {
if (dict[log[1]]) {
delete dict[log[1]]
count++
}
}
console.log(count)
CORS
백엔드에서 프론트엔드로 api를 보내주는 작업을 해보다보니 CORS 처리의 중요성을 알 수 있었다.
CORS는 교차 출처 리소스 공유(Cross-Origin Resource Sharing)으로서, 추가 HTTP 헤더를 사용하여, 한 출처에서 다른 출처의 리소스에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제이다.
이는 보안 상의 이유로 브라우저가 교차 출처 HTTP 요청을 제한하기 때문에 필요하다.
CORS 체제는 브라우저와 서버 간의 안전한 교차 출처 요청 및 데이터 전송을 지원한다.
프론트엔드와 백엔드로 나눠서 작업하는 첫 프로젝트 시작
기본 백엔드 구현은 완료
심화적으로 추가할 기능들을 정리해서 도입할 계획
알고리즘 공부
해쉬, 스택, 큐, 정렬, 재귀함수, 이진탐색
관련 알고리즘 문제 백준에서 풀이
노마드코더 줌 클론코딩
시간이 날 때마다 틈틈히 수강 중
다른 사람은 어떤 식으로 코딩을 하는지 보는 것은 좋은 공부인 것 같다.