재귀(再歸)란? 주어진 문제를 해결하기 위하여 하나의 함수에서 자신을 다시 호출하여 작업을 수행하는 방식. 어떤 루틴이나 프러시저가 자기 자신을 반복적으로 호출하여 문제를 풀어 나가는 알고리즘으로, 이를 이용하기 위해서는 스택을 사용한다. 간단한 루틴을 풀 수 있지만, 처리 속도가 느리고 횟수가 지나치게 많으면 프로그램이 정지하기도 한다. - 네이버 사전 재귀 문제의 대표적인 예로는 피보나치 문제가 있다. 위의 인용에서도 언급하고 있지만, 재귀라는 방식 자체가 시간복잡도를 줄여주는 방식은 아니다. 그러나 메모이제이션이라는 방식을 통해 중간 결과를 저장해두는 방식으로 처리한다면, 계산 횟수를 많이 줄일 수 있다. 또 다른 방법으로는 조건문을 통해서 불필요한 가지를 쳐내는 방식으로도 계산횟수를 줄인다. 이번..
백준에서 코테 문제를 풀다보면 느끼겠지만, 입/출력 쪽에서 시간 초과가 자주 발생한다. (분명 알고리즘은 맞았는데, 계속 시간초과가 나면 대부분 이 문제다..) 각각 어떤 곳에서 문제가 발생하는지 파헤쳐보자. 입력 문제 입력에 문제가 생기는 경우는 대부분 Scanner를 써서 여러번 next()나 nextInt()으로 가져오는 경우다. 입력에 문제가 생겼던 문제는 탑 이었다. 50만번은 딱히 많아보이지 않는 갯수이다. N번 정도는 그냥 하면 되는거 아냐? 라고 생각할 수 있겠지만 next의 코드를 따라가보면 문제가 있다는 걸 알 수 있다. public String next(Pattern pattern) { ensureOpen(); if (pattern == null) throw new NullPointe..
멘토링 준비도 할 겸해서 코딩 테스트 고수 지인 분의 도움을 받아 코딩 테스트 문제를 조금씩 풀고 있다. 솔직히 피곤하고 힘들지만 한달간 꾸준히 푼 결과 solved.ac에서 측정하는 레벨이 꽤나 올랐다. 어떤 카테고리부터 푸는게 좋을지 고민 중이었는데, 스택을 추천 받았다. 그런데, 스택 코딩 테스트 문제는 일반적인 자료구조 사용법과 같이 만만하지 않았다. 브론즈부터 벽을 좀 느꼈달까 문제를 푼 순서는 다음과 같다. 1. 막대기 : https://www.acmicpc.net/problem/17608 2. 괄호 : https://www.acmicpc.net/problem/9012 3. 탑 : https://www.acmicpc.net/problem/2493 4. 스카이라인 쉬운거 : https://www..
역시 내 직무와 핏하진 않지만 재밌어보여서 들으러간 세션 일단 우리서버에도 istio가 있는데 딱히 특별한 동작을 하고 있진 않지만 일단 클러스터로 떠 있으니 istio가 뭔지만 알아도 도움이 될 거 같아서 참석(istio는 kiali라는 거랑 같이 많이 쓴다고 함) 그리고 두번째 세션인 AWS network는 어떤 내용을 할지가 궁금했는데, 생각과는 전혀 달랐던 세션이라 아쉬웠다. 1. 쿠버네티스 클러스터 마이그레이션 작업 후기(feat. istio envoyfilter의 난)구 클러스터 -> 신 클러스터, 최신 메타에 맞춰가기 위함 구 클러스터의 헬름 차트 : 뭘 하고자 하는지 알겠는데, 미묘하게 다르고 최신 메타는 아님 작지만 묵직한 녀석- 아이템 지급 요청 등을 받았을 때 해당 요청을 보낸 주체..
주변에서 이 책을 여러번 추천 받았었다. 원래 읽고 있던 오브젝트는 생각보다 뒤로 갈수록 흥미가 떨어져서 재미가 없었는데, 이 책은 소개에 적힌대로 인프라 설계를 한눈에 볼 수 있도록 도해(그림)로 정리가 잘되어서 이해하기 쉬웠다. 읽다보면 안전 해시 함수나 블룸 필터, 캐시 같은 치트키를 계속 쓰는 것 같다는 느낌을 받지만, 그래도 생각하기 힘든 부분을 매 설계마다 짚어줘서 오.... 하고 넘어갈 내용이 꾸준히 등장해서 흥미로웠다. 그리고 AWS에서 관리해주는 부분들과 고가용성을 보장해주는 것에 대한 의미를 되새겨볼 수 있었다. 뒤로갈수록 재밌는 사례가 많아서 읽는데도 속도가 붙어서 이틀만에 다 읽을 수 있었다. 그리고, 기억력이 나쁜 내가 꼭 기억해둬야할 만한 것들이 있어서 정리해보려고 한다. 파랑색..
갑작스럽게 떨어진 오더(C레벨에서부터 내려온)로 인해 월드 ID를 이용한 인증 시스템 개발 업무가 추가됐다. 왜 이런 오더가 떨어졌냐를 생각하기전에 월드 ID가 뭐인지부터 알아보자. 월드 ID란? World ID는 영지식 증명과 고급 개인 정보 보호 암호화를 통해 사용자가 익명으로 자신의 고유성과 인간성을 증명할 수 있는 디지털 신원 솔루션입니다. World ID는 클라우드 및 온체인 앱 모두에 쉽게 통합할 수 있습니다. 유효한 월드 ID를 가진 사용자는 월드 앱과 같은 월드 ID 호환 지갑을 통해 익명으로 자신이 고유한 인간임을 몇 초 만에 확인할 수 있습니다. https://docs.worldcoin.org/world-id 굳이 인증 과정을 기존 방식이 아닌 다른 컨셉으로 해야하나?란 생각이 들지만 ..
Contents: AWS 환경에서의 보안의 기본인 Credential 과 API Key 관리에 대한 사례를 공유하여 보안성을 고도화 할 수 있는 방안을 공유 내 직무와 엄청 핏하진 않고 일정이 겹쳐서 갈까말까 수십번은 고민했던 밋업 그런데, 마침 팀에서 필요로 하던 주제라 팀장이 등을 밀어줘서 참석하게 됐다. 사용하는 외부 서비스가 늘어나면서 API key와 credential이 계속 늘어나고 있어서 조금씩 문제가 눈에 띄기 시작했다. 대충 정리해도, AWS, elastic cloud, open AI, hyvortalk, sendgrid, froala, twilio 등 프로필 별로도 나뉘다보니 점점 api key와 credential 코드가 쌓이고 있었다. 이 문제에 대한 나름의 해결책을 기대하고 들으러..
S3를 퍼블릭으로 관리하게 되면서, 파일을 주기적으로 지워야하는 정책이 추가됐다. S3에서는 다행히 주기적으로 파일을 삭제하는 기능이 있다. 바로 수명 주기 규칙이다. S3 > 버킷 > 버킷 선택 > 관리 > 수명 주기 규칙 생성으로 들어간다. 수명 주기 규칙은 알아보기 쉽게 짓고, 내 목적은 파일 전체를 지우는 거기 때문에, 버킷의 모든 객체 적용을 선택. 그리고 이전 버전 영구 삭제를 하루로 설정한다. 다만, 수명 주기 규칙 생성은 최소 단위가 1일이다. 이 간격을 더 짧게 만드는 가장 쉬운 방법은 람다나 서버에서 스케줄러를 돌려서 주기적으로 데이터를 지워주는 방식이다. 심플하지만 재미없는 방식이다. 조금 색다른 아이디어를 내보자면, S3에 저장된 객체만 퍼블릭하게 접근할 수 있는 시간을 지정할 수 ..
- Total
- Today
- Yesterday
- 코딩테스트
- docker
- Elastic cloud
- awskrug
- OpenAI
- AWS EC2
- EKS
- AWS
- lambda
- JWT
- Kotlin
- cache
- MySQL
- java
- OpenFeign
- 람다
- GIT
- chat GPT
- 인프런
- elasticsearch
- terraform
- openAI API
- springboot
- Log
- AOP
- ChatGPT
- S3
- serverless
- Spring
- 스프링부트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |