본문 바로가기

분류 전체보기117

프로그래머스 Javascript 코딩 테스트 Lv.0 암호해독 암호화된 문자열 ciphercipher문자열에서 code의 배수 번째 글자를 찾아야함일단 먼저 문자열 cipher를 배열로 변환const solution = (cipher, code) => { let answer = [] let arr = [...cipher] return answer}주어진 배열에서 code번째를 찾아야하는데const solution = (cipher, code) => { let answer = [] let arr = [...cipher] for (let i = 0; i 일단 나는 for문을 사용해서 배열을 순환해서 code번째의 문자를 찾았다.먼저 for문의 조건문 부분에 배열의 길이보다 적게 조건을 줬는데 이유는배열의 index는 0.. 2024. 5. 9.
[emotional] - Nextjs api route nextjs 공식문서 route handlers를 보면 page 라우터를 사용할 때는 api 폴더 아래에 있어야 api에 접근이 가능했는데app 라우터로 넘어오면서 api dir 아래에 있을 필요는 없다.(app폴더 안에 route.ts로만 작성하면 된다.)하지만 명확하게 구분하기 위해 api dir 아래에 route.ts 파일을 생성했다.그런데 왜 이걸 사용하냐?이모셔널에는 youtube api와 openai api를 사용하는데 서버 없이 클라이언트 단에서 사용되다보니네트워크 탭의 요청 url과 요청 헤더에 api key값이 노출이 되버린다..env를 사용해서 환경변수로 key값을 숨긴 노력이 무용지물이 되어버렸다.이걸 방지하기 위해서 찾다보니 나온게 nextjs 서버를 이용한 api route방식이다.. 2024. 5. 6.
[배포] emotional 힘들었다. 아직 배포 전 작업 과정에 대한 글은 안썼지만... 결론만 말하자면 내가 알던 nextjs는 완전 수박 겉 핥기 그 자체였다는거... 노출되던 api key들은 모두 서버에서 처리 중 이다. nextjs만세 https://www.emotional.today/ emotional 자신의 감정을 표현하면 그에 맞는 추천 노래 Playlist를 알려드려요. www.emotional.today 2024. 4. 22.
[emotional] - 프레임 및 기능 구현 simple is the best (디자인 하기 귀찮았던거 아님.) 글 작성 시간 기준으로 비가 오고 있길래 빗소리가 듣기 좋다고 했더니 장마철은 아니지만 비 오는 날 듣기 좋은 노래 플리를 추천해준다. 이렇게 프레임과 기능 동작은 되지만 속을 들여다보면 보안 상의 문제가 꽤나 있다. 클라이언트 측에서 API KEY만 가져와서 사용하다보니 API KEY가 노출이 된다던지 노출이 된다던지 하는 점... 오픈ai api를 사용하면 요청 헤더 Authorization에 bearer token에 key값이 노출 된다는 점과 youtube api를 사용하면 요청 url에 쿼리 파라미터로 key값이 노출이 된다. 이 두가지 문제 때문에 현재 클라이언트 측에서 key값을 숨길 수 있는지 검색 중에 있다...(NEXT.. 2024. 4. 20.