전체 글(329)
-
IntelliJ 한글 입력시 경고 끄기 (Non-ASCII characters in an identifier)
테스트 코드 작성시 한글을 사용하는 경우가 종종 생기는데 (사실 많이), 그럴 때마다 non-ascii characters 에 경고가 생긴다. 거슬리니까 제거하도록 하자. MacOs IntelliJ 기준으로 Settings > Editor > Inspections > Internationalization > Non-ASCII charaters 로 들어가자. 아래 이미지에서 보이는 Report Non-Ascci Charaters In: Identifiers 의 체크박스를 해제해주자. warning 이 말끔히 사라진 것을 확인할 수 있다 (편안~)
2023.08.21 -
AWS Cognito
Cognito AWS Congnito 는 웹/앱에 대한 인증, 권한 부여 및 사용자 관리를 제공한다. 유저는 이름과 패스워드를 사용하여 직접 로그인 하거나, SNS 계정으로 로그인(Oauth) 할 수 있다. Cognito 특징 - 손쉬운 사용자 관리 - Managed Service 와 뛰어난 확장성 (Scalability) 사용자 풀 Cognito에서 제공하는 사용자 풀은 말 그대로 사용자의 모임을 의미한다. 애플리케이션을 사용하는 유저를 관리하기 위한 일종의 사용자 데이터베이스 역할로 볼 수 있다. 사용자 풀은 회원가입과 로그인 기능(+Oauth)을 사용할 수 있으며, 인증이 완료된 사용자에게 JWT를 반환한다. 이 JWT는 API GW에서 자격증명에 사용될 수 있으며, 사용자 풀에 있는 모든 사용자는..
2023.08.19 -
9월까지 짤막한 계획
굳이 공개적인 블로그에 쓰는 건 강제성을 조금이라도 얻기 위함이다. 타인의 시선으로 추진력을 얻겠다는 얄팍한 마음! 우선 다음 글또가 시작하기 까지 짧게는 두달, 길게는 세달의 시간이 남는다. 아마 글은 꾸준히 쓸 것 같다(그럴거지..?). 완벽보다는 완성에 초점을 둬야 행동할 수 있더라. 작은 스텝부터 시작하자. 해야할 일에 집중하자. 현재 중요한 일은 3가지로 정리할 수 있다. 1. 모던자바인액션 스터디 주에 한 챕터씩, 일요일 저녁에 스터디를 진행하기 때문에 월/화/수요일에 바짝 읽고 정리하면 나름 커버할 수 있는 분량이다. 오전 오후 가리지 말고 틈틈히 읽자. 2. AWS SAA-C03 자격증 더 이상 미룰 수 없는 너와 나의 자격증 도전. SIPE 동기들과 함께 진행하는데 하필 내가 팀장이다 아..
2023.07.17 -
[Java] 런타임에 메서드를 전달한다는게 무슨 말일까?
모던 자바 인 액션 초반 부엔 일급 객체가 등장한 배경을 설명하면서 아래와 같은 구절이 나온다. 만약 런타임에 메서드를 전달할 수 있다면, 즉 메서드를 일급 시민으로 만들 수 있으면 프로그래밍에 유용하게 활용할 수 있다. (넹?) 문맥상, 일급 객체(시민)를 메서드의 인자로 할당할 수 있어 생기는 이점에 대해 설명하는 내용이지만, 런타임에 메서드를 전달한다는 말이 쉽게 와닿지 않는다. 런타임 메서드 전달이 무슨 의미일까? 우선 런타임은 문자 그대로 프로그램이 실행되는 시간을 의미하는데, 이미 애플리케이션이 실행된 시점에 메서드를 객체와 연동하여 전달하고 호출하는 기법을 의미한다. 프로그래밍의 람다 표현식이나 콜백 함수, 디자인 패턴에선 전략패턴 등 여러 방법으로 구현할 수 있다. 이러한 기법의 공통점은..
2023.07.17 -
글또 8기 마무리 및 회고
세 번째 글또를 마무리하는 시점이 왔다. 그동안의 기수 중 이번이 가장 인상적이고 강렬했다. 여러 이유가 있지만 아무래도 많은 사람들을 만날 수 있어서겠지. 분명 글 쓰는 개발자 커뮤니티인데 왜 이리 사람을 많이 만났는지 허허,, 두근두근 했던 세 번째 기수 회고 레쓰고! 잘해온 것 - 꾸준히 글을 발행한 것. 글또 세 기수 참여만에 12번의 글(이번 글 포함)을 모두 제출했다! 이번엔 2번의 패스 모두 사용하지 않겠다는 다짐을 지켜냈다. 사실 패스는 쓰라고 만든 것이지만 괜한 오기로 사용하고 싶지 않았다. 글의 퀄리티는 사실... 큐레이션에 한 번도 등재되지 못해 좋았다는 말은 못 하겠다. 이건 좀 잘 썼는데? 하는 글을 제출한 주엔 내심 기대도 해봤지만 어림도 없었다. 실제로 그 주에 큐레이션 된 글..
2023.07.16 -
알림시스템 구축을 위한 SQS, SNS, MSK 비교
목차 1. 개요 2. SQS 특징 장점 / 단점 Use casse 3. SNS 특징 장점 / 단점 Use casse 4. MSK 특징 장점 / 단점 Use casse 6. 3가지 서비스 비교 7. 결론 개요 회사에서 알람 시스템을 구축하게 됐습니다. 시니어 분이 브리핑한 아키텍처에선 AWS MSK 를 활용하여 이벤트 드리븐 알림 시스템을 구축할 예정입니다. 흔히 알림 시스템에서 사용될 수 있는 AWS Service 를 떠올리면 대표적으로 AWS SNS 가 있었는데 MSK 를 사용할 것이란 점에서 두 서비스의 특징과 차이를 이해할 필요가 있다고 느꼈습니다. 더불어 SQS 도 살펴보면서, 각 서비스가 가지는 특징을 비교하여 회사에서 구축할 알림 시스템이 어떤 형태일지 조사했습니다. SQS : Simple Q..
2023.07.02 -
Redis 스캔 때려서 성능 이슈 발생할 썰
개요 Redis 사용할 때 삽질한 썰 풀어봅니다. 이 삽질의 원인은 2가지 정도로 축약할 수 있는데, 1) Redis 는 싱글스레드 구조란 걸 간과한 점, 2) Redis에 scan 명령어를 날리면 어떤 일이 벌어지는지 간과한 점입니다. 환경 - Java 11 - Redis Reactive 2.7 Redis 의 특징 우선 Redis 는 싱글스레드 구조로 작동합니다. 즉 한번에 하나의 요청만 처리할 수 있습니다. 만약 하나의 작업에서 긴 시간이 소요되면 그 뒤의 작업은 blocking 되어 시스템 전체적으로 성능이 느려질 수 있습니다. 병목이 발생할 수 있다는 의미죠. 그럼 Redis 의 어떤 작업이 긴 시간을 소요하는 걸까요? 아래 이미지를 보시면 인메모리 데이터 저장소인 Redis 는 비교적 빠른 속도..
2023.06.17 -
OpenAI로 서비스 사용성 개선하기
개요 최근에 앱을 출시했답니다.⭐️ Tidify 는 링크 아카이빙 서비스로, 링크를 복사하거나 Share Extension 을 사용하여 북마크를 자동으로 생성해주는 서비스입니다. 사용자 편의성을 위해 링크 입력 후 북마크의 이름을 지정하지 않으면, url(링크)을 북마크의 이름으로 자동 저장합니다. 하지만 편의성을 위한 이 기능이 어느날 에러를 내버리는데… (아직 베타버전이라 본격적인 홍보는 하지 않았지만 🔗앱스토어 에서 다운받을 수 있습니다) Open AI 도입배경 특정 링크(url)의 길이가 300자를 넘을 경우 DB table 의 name column 에서 Too long for column 에러가 발생합니다. 당시에는 단순히 컬럼의 최대 길이를 500자로 늘려 대처했지만, 근본적인 대처 방법은 아..
2023.05.29 -
[Open AI API 에러] ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with LibreSSL 2.8.3
FastAPI 로 찌피티 import 할 때 발생한 에러 FastAPI 내부에 설치된 urllib3 v2.0 이 OpenSSL 1.1.1+ 버전만 지원한다고 한다. Error message ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with LibreSSL 2.8.3. See: https://github.com/urllib3/urllib3/issues/2168 그럼 어떻게 할까? 에러를 해결하는 여러 방법이 있지만, 필자는 간단히 urllib3의 버전을 2.0보다 아래로 다운그레이드 했다 해결 pip uninstall urllib3 pip install 'urllib3
2023.05.28