전체 글

알고리즘 (Algorithm), PS/Baekjoon Online Judge

[BOJ 30049] 영업의 신(풀이, C++)

BOJ 30049 영업의 신 문제에 대한 글입니다. 문제 입력은 조금 복잡해 보일 수 있으나 1 ~ N+2번 줄에서 base 입력을 받고, N+3번 줄부터 매출 변경에 관한 입력을 받으며 입력을 받을 때마다 계산하여 답을 출력해 주는 문제입니다. 크게 어려운 부분은 없는 구조이나, 관건은 시간복잡도를 잘 맞추는 것입니다. 조건으로 인하여 구현에 번거로운 부분 없이 편하게 문제를 풀 수 있습니다. 초기 입력 부분은 인원 300명에 가게 10000명으로 많아야 300만 정도의 입력을 받지만, N+3번부터 들어가는 계산은 N = 1,000,000 이기에 마지막 부분의 시간복잡도를 잘 고려해서 문제를 풀어야 합니다. 저의 초기 코드는 아래와 같은 방식으로 작성했습니다. int time; cin >> time; ..

하나도 안 중요함

Gateway 글 메모

https://toss.tech/article/slash23-server 토스는 Gateway 이렇게 씁니다 더 안전하고 안정적인 서비스 운영을 위해서 ‘gateway’를 어떻게 사용해야 할까요? 토스의 수많은 마이크로서비스 로직을 공통화하기 위한 gateway 운영 방법에 대해 소개합니다. toss.tech https://velog.io/@yeomyaloo/Spring-security-MSA-환경에서는-어떻게-인증을-진행할까-부제-인증-인가-서버의-분리 [Spring security] - MSA 환경에서는 어떻게 인증을 진행할까? (부제: 인증, 인가 서버의 분리) 여러 서버로 구성한 msa서버에서는 어떻게 인증, 인가를 분리해서 작업하고 또한 분리한 인증,인가 서버와 어떻게 클라이언트 서버는 통신을 ..

자바스크립트 (JavaScript)

Next.js App Router 변경사항 메모

Next.js App Router가 업데이트되며 이전에 보았던 강의도 추가적인 업데이트가 올라와서 해당 강의를 수강하며 App Router가 되면서 변경된 사항을 정리해보려한다. # route 방식 변경 기존 pages/에서 app/ 폴더로 바뀌고, page.js, layout.js 등의 파일 이름으로 고정. 경로는 이제 무조건 폴더를 만들어 설정해야한다. SvelteKit과 비슷해진 느낌. # 동적 경로 props.params에 접근해 slug 이름에 따라 params.slug 처럼 접근하면 된다. # 클라이언트 실행 App Router로 변경되며 기본적으로 서버 컴포넌트가 되었다. 컴포넌트를 클라이언트 실행하기 위해서는 파일의 위에 "use client"; 를 적어주면 된다. 이런 서버 컴포넌트의 장..

서버(Server)/장고 (Django)

Django에 redis 캐싱 적용하기

환경 설정 개발환경(MacOS) 맥을 기준으로 사전 환경 설정을 설명합니다. 1. brew를 이용하여 redis를 설치해 줍니다. brew install redis 2. redis를 작동시킵니다. redis-server redis-cli 간단 사용법 redis 서버에 접근 가능한 redis-cli에 대한 간단한 사용법입니다. 1. redis-cli 실행 redis-cli 2. db 선택 select 1 redis는 여러 개의 데이터베이스를 둘 수 있고, 저희는 1번으로 settings에 설정해 두었으므로 1번에 접근합니다. 3. keys 보기 keys * 현재 생성된 key를 확인합니다. 배포 환경(docker-compose) docker-compose를 사용할 때 배포 환경 설정입니다. version:..

Troubleshooting

카카오 소셜 로그인시 카카오톡 내부에서 브라우저가 켜지는 오류

카카오 소셜 로그인시 모바일로 해보니 카카오톡이 켜져서 인증을 하고, 이후 카카오톡 내부 웹브라우저로 돌아오는 오류가 발생했다. 찾아보니 JS 방식으로 로그인 하지만, REST API용 키를 사용하면 이렇게 된다는 듯? 카카오 내부에서 소셜 로그인 구현을 어떻게 했는지 대략 느낌이 오는 것 같다. Javascript 키로 교체하고 문제 해결.

Troubleshooting

poetry 오류 ImportError: cannot import name 'user_data_dir' from 'platformdirs' (unknown location)

MacOS 환경에서 brew로 poetry install을 하여 1.6.1 -> 1.7.1 버전 업그레이드를 했을때 문제가 발생했다. poetry쪽 문제는 아니고 brew쪽의 문제인듯? brew install python-platformdirs 로 설치해주라는 해결 방법을 찾았다. wibaek@Wibaeks-MacBook-Air ~ % brew install python-platformdirs Warning: python-platformdirs 4.2.0 is already installed, it's just not linked. To link this version, run: brew link python-platformdirs 실행 해보니 이미 존재하고 link를 해달라 했고, wibaek@Wiba..

하나도 안 중요함

Next.js .env 환경변수 메모

https://velog.io/@milkboy2564/Next.js-env%ED%99%98%EA%B2%BD-%EB%B3%80%EC%88%98-%EC%A0%95%EB%A6%AC Next.js env(환경 변수) 정리 환경 변수 velog.io https://jforj.tistory.com/249 [Next] 환경 변수(.env) 사용하기 안녕하세요. J4J입니다. 이번 포스팅은 환경 변수 사용하는 방법에 대해 적어보는 시간을 가져보려고 합니다. .env 파일 활용 Next에서 환경 변수를 사용하는 방법은 첫 번째로 .env 파일이 있습니다 jforj.tistory.com 추가적으로 next.config.js에 단순히 정의하면 기본적으로 NEXT_PUBLIC 방식으로 가는 듯?

회고 & 기록

Firebase로 간단히 인기 검색어 기능을 만들어본 경험

next.js를 기반으로 한 서비스에 백엔드 서버와는 별개로 간단하게 인기 검색어 기능을 간단하게 추가해 본 경험을 기록합니다. 해당 시도를 해본 이유는 인기 검색어가 크게 필요하다기 보다, Firebase나 noSQL 느낌의 DB를 간단히 써보고 싶다! 라는 생각이 강했습니다. 갑자기 noSQL을 써보고 싶던 건 Firebase나 다른 클라우드 서비스에서 무료로 제공하는 DB(Azure Cosmos DB 등)가 많기 때문인데, 그냥 놀리고 있기도 아까워 한번 사용해보고 싶다는 생각이었습니다. 또한 Serverless 들을 조합해 보고 싶기도 했습니다. 그러나 Firestore만을 이용하게 되어 따로 클라우드 서버리스를 경험해보지는 못했습니다. 어떻게 만들 것인가? 간단히 검색들을 기록하고, 상위순으로 ..

회고 & 기록

썸네일 이미지 용량 최적화를 고민해보았다

최근 Next.js를 건드려보며 Image 컴포넌트에 적절하게 리사이징 해주는 기능이 있는 것을 보고 다른 서비스에도 이런 리사이징이 있으면 좋겠다는 생각을 했다. 문제는 프론트엔드 서버 내부에 이미지가 저장되어 있어서 적절히 리사이징 해줄 수 있는 것이 아니고, 프런트가 따로 있고 이미지는 AWS S3에서 받아오는 방식이라는 것이다. 즉 S3에 미리 리사이징 이미지를 저장해둬야 했다. 이미지를 줄여야 한다. 서비스에는 크게 2가지 종류의 이미지가 있었다. 수동으로 S3에 직접 업로드하는 샘플 이미지와, 각 개체마다 서비스를 통해 S3으로 업로드하는 개별 이미지였다. 우선 샘플 이미지를 생각했기에 가장 먼저 생각한 방법은, S3에 이미지가 업로드되었을 때 람다등을 통해서 자동으로 이미지 리사이징을 진행하..

회고 & 기록

CSE3210 오픈소스응용프로그래밍을 수강하고

인하대학교 CSE3210 오픈소스응용프로그래밍은 2023-2에 새롭게 개설된 강의이다. 인하대에는 원래 오픈소스SW개론이라는 오픈소스의 이름을 걸은 다른 과목이 있는데, 이 과목은 한학기에 Bash, Git, Numpy, Pandas, Scikit-Learn, TensorFlow, PyTorch, HuggingFace Transformers를 다루는 무시무시한 과목이다. 너무 광범위를 다루기에 크게 깊이있지 않고, 후반부로 가서는 크게 도움도 안되는 암기라고 악평이 있는 편이다. 이렇듯 오픈소스SW개론의 평가가 크게 좋지 않기에, 새롭게 개설되는 오픈소스응용프로그래밍(이하 오소응)도 약간의 걱정이 있기는 했다. 오소응 과목에서는 다음과 같은 주제를 다룬다: 오픈소스 라이선스, Git, Docker, so..

Muromi
생쥐 개발자