본문 바로가기

전체 글

MariaDB Timezone 관련 이슈 오늘도 평화롭게 이어가던 개발 나날.. TypeScript의 Date 객체를 사용한 날짜 데이터의 표시가 UTC 기준으로 삽입되어있는 것을 발견했다.. 음.. 서버에선 UTC로 생성하고 이를 저장할 때, 데이터베이스의 KST로 저장된 건가? 싶었다. 자세히 찾아보니, 데이터베이스의 time_zone 시스템 변수가 KST이고 서버에서 요청 시 생성되는 MySQL 세션은 UTC인 이슈였는데, 이것 외에도 서버가 배포되어있는 리눅스의 환경이 UTC로 동작하고 있었다. 아마 TypeScript에서 Date 객체로 날짜를 생성하면 UTC로 생성되었으리라, 이 생성된 객체가 딱히 변경될 것도 없었을 것이다, 세션이 UTC였으니 mysql 라이브러리는 UTC로 들어온 Date 객체를 그대로 UTC 형식의 문자열로 보.. 더보기
처리율 제한 장치 관련 고민 항상 기능을 개발하고 나서 드는 생각이었습니다. 어.. 만약에 클라이언트에서 요청이 처리되기 전에 요청이 한 번 더 오면 어떡하지? 물론 통상적으로 그런 경우는 잘 없기에 방치해두었다가 기능 개발이 어느정도 마무리되어 잠깐 짬이 났을때 조금 알아보았습니다. 들어가기에 앞서 위와 상황을 가정하고 진행하겠습니다. 위와 같은 상황이었으니까요.. 처리율 제한 장치란? 단어만 듣고 판단했을 땐, 음.. 분당 몇번의 처리? 초당 몇번의 처리? 등의 제한을 두는 구나, 예 맞습니다. 그거 Client로부터 발생하는 요청을 초당, 분당 등으로 제한시켜 요청을 제한시키는 것을 의미합니다. 제가 읽었던 책에서는 이를 네트워크 시스템에서 클라이언트 또는 서비스가 보내는 트래픽의 처리율(rate)을 제어하기 위한 장치라고 설.. 더보기
nanoid 라이브러리 이슈 적절한 길이의 uuid 도입을 위해 조사하던 중 찾은 라이브러리..! https://www.npmjs.com/package/nanoid nanoid A tiny (116 bytes), secure URL-friendly unique string ID generator. Latest version: 4.0.2, last published: 2 months ago. Start using nanoid in your project by running `npm i nanoid`. There are 6583 other projects in the npm registry using nanoid. www.npmjs.com 2023년 5월 24일 기준, 주간 다운로드 횟수가 약 3천만회다.. 통상적인 uuid의 경우, .. 더보기
Java는 완전한 객체지향 언어일까? 먼저 이 글은 실력 부족한 개발자가 쓴 글로 읽으시는 분들과 다른 의견이 있을 수 있습니다. 그 경우 댓글 남겨주시면 한 수 배우겠습니다. 감사합니다! 그냥.. 이직을 위해 면접 리스트를 준비하고 혼자 모니터보고 대답하던 중에 갑자기 생각이 들었다. 물론 어떤 책을 읽다가 본 내용인데.. 그 책이 뭐였는지 기억이 나질 않는다.. 그 책에서는 캡슐화, 상속, 다형성 세 부분에서 Java가 어떻게 객체지향 프로그래밍의 특징을 구현하고 있고 어떤 점이 부족한지를 설명해줬는데.. 무슨 책이었지.. 클린 아키텍쳐였나.. 위키피디아에 정의된 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시점에서 벗어나 여러 개의 독립된 객체들의 상호작용으로 파악하고자 하는 것이라고 한다. 이같은 특성덕에 프로그램.. 더보기
[Programmers] 거리두기 확인하기 간단하게 현재 위치에 P가 있을 경우, 상, 상상, 상좌, 상우, 하, 하하, 하좌, 하우, 좌, 좌상, 좌하, 좌좌, 우, 우상, 우하, 우우를 탐색해서 P가 존재하면 거리두기를 지키지 않은 것 상, 하, 좌, 우 네 개의 방향으로 탐색하는 함수를 만들었음. 다만 자신이 온 방향을 기억해 해당 방향의 반대 방향으론 진행하지 않음 탐색을 진행하면 O, X, P를 만날 수 있는데 O는 테이블로 맨해튼 거리에 포함, X는 파티션으로 맨해튼 거리를 무시 P는 유저로 맨해튼 거리 내에 있을 경우 거리두기를 지키지 않은 것, 다만 P의 맨해튼 경로에 X가 존재하면 해당 경로는 제외 탐색 거리는 depth를 정의하여 맨해튼 거리인 2를 초과하지 않게끔 + 맵을 벗어나지 않게끔 정의 탐색을 진행하다 O를 만나면 진행.. 더보기
[Programmers] 정수 삼각형 def solution(triangle): answers = [] for i in range(len(triangle)): answers.append([]) answers[0].append(triangle[0][0]) for i in range(1, len(triangle)): for k in range(i+1): if k == 0: triangle[i][k] = triangle[i][k] + triangle[i-1][k] elif k == i: triangle[i][k] = triangle[i][k] + triangle[i-1][k-1] else: if triangle[i][k] + triangle[i-1][k] > triangle[i][k] + triangle[i-1][k-1]: triangle[i][.. 더보기
공부해야되는거 AWS 보안그룹 설정 로드밸런서 더보기
[Django] Django InMemoryUploadedFile Class 관련 삽질 얼마 전 회사에서 또 국책을 물어왔습니다. 수익이 안 나는 서비스를 하는 스타트업에 근무하는 개발자의 비운일까요 이번에는 제가 주로 쓰던 SpringBoot가 아닌 Python 기반 웹 프레임워크를 사용해서 API 서버를 구축해달라고 했습니다. 구축해야할 건 크게 어렵지 않았는데 간단하게 위와 같습니다. 급하게 만들어서 삐뚤빼뚤한 건 귀엽게 봐주십쇼 이 과정에서 Django 기반의 Django Opened File Type인 InMemoryUploadedFile을 Python Opened File Type인 _io.bufferedreader로 바꿔주어야 STT 모델의 인식이 가능했습니다. 사실 InMemoryUploadedFile은 Django의 UploadFile을 상속받아 만들어진 클래스라 그냥 fi.. 더보기