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 체제는 브라우저와 서버 간의 안전한 교차 출처 요청 및 데이터 전송을 지원한다.

 

 

프론트엔드와 백엔드로 나눠서 작업하는 첫 프로젝트 시작

기본 백엔드 구현은 완료

심화적으로 추가할 기능들을 정리해서 도입할 계획

 

알고리즘 공부

해쉬, 스택, 큐, 정렬, 재귀함수, 이진탐색

관련 알고리즘 문제 백준에서 풀이

 

노마드코더 줌 클론코딩

시간이 날 때마다 틈틈히 수강 중

다른 사람은 어떤 식으로 코딩을 하는지 보는 것은 좋은 공부인 것 같다.

 

 

Hoisting과 prototype 개념 구글링 공부