전체 글 217

[Python] 프로그래머스 Lv.1 실패율

https://school.programmers.co.kr/learn/courses/30/lessons/42889 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 실패율 : 실패자/스테이지 도달자 N : 전체 스테이지 수 stages : 사용자가 있는 스테이지의 번호 담긴 배열 실패율이 높은 스테이지부터 내림차순 return 1부터 N까지를 순회하여, (stage에 있는 i번째 수의 개수/남은 사람의 수)가 실패율을 반환한다는 원리를 금방 이해했다. 그래서 마찬가지로 순회한 다음, 그 실패율을 담은 배열의 순위를 return 값으로 잡는 것이 목표이므로 아..

cording test 2024.03.16

소셜로그인에서 redirect uri는 왜 필요한가?

리디렉션(Redirection)은 웹 서버나 웹 애플리케이션이 클라이언트의 요청을 받았을 때, 해당 요청을 다른 위치로 전송하는 프로세스를 말한다. 즉, 클라이언트가 요청한 URL이나 리소스를 다른 URL이나 리소스로 이동시키는 것을 의미한다. 리디렉션은 보통 다음과 같은 상황에서 발생한다: 인증 및 인가 프로세스: 사용자가 로그인 페이지로 이동하여 인증을 완료한 후에, 시스템은 사용자를 인증된 페이지로 리디렉션한다. URL 재작성: 특정 URL에 대한 요청이 있을 때, 서버는 요청된 URL을 다른 URL로 리디렉션하여 요청을 처리합니다. 이는 웹 사이트의 구조 변경이나 특정 페이지의 이동 등에 사용된다. SEO (검색 엔진 최적화): 서버는 특정 URL에 대한 요청을 다른 URL로 리디렉션하여, 검색 ..

Framework/Django 2024.03.16

[Python] 프로그래머스 Lv.2 뒤에 있는 큰 수 찾기

https://school.programmers.co.kr/learn/courses/30/lessons/154539 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음에는 적절하게 자료구조를 사용할 생각을 못했다. 레벨 1을 싹쓸이하고 올라오느라 미처 고민도 못해봤는데, 그러다 보니 아래와 같은 코드를 먼저 시도해보았다. 딱 머릿속에 생각나는 대로.. def solution(numbers): answer = [] for i in range(len(numbers)): found = False for j in range(i + 1, len(numbers)):..

cording test 2024.03.12

[Python] Garbage Collection

Python의 언어가 가지는 의미를 이때까지 얕게 이해했음을 이번 Garbage Collection(이하 GC) 공부를 통해 확실하게 느꼈다. 프레임워크를 잘 사용하고, 파이썬 함수/자료구조/알고리즘을 적절히 잘 사용하여 효율적으로 코드를 짜면 1차적으로 좋은 신입이 되지 않을까 생각했는데.. 새로운 분야에 눈을 뜬 것 같아서 오히려 좋다. GC는 현대적인 언어에는 거의 필수로 존재하며 개발자의 생산성을 향상해준다. C#, JS, Python 등의 언어는 GC를 기본적으로 제공하며, C, C++과 같은 언어에서는 malloc(), free()와 같은 저수준의 메모리 관리 함수를 제공한다. 실제로 현대적인 언어로 오면서 개발자는 메모리를 직접 관리하는 코드를 거의 사용하지 않게 되었다.(어쩐지 아직 경험해..

언어/Python 2024.03.05

데이트팝 기술면접 풀이

https://blog.datepop.co.kr/python-interview/ 데이트팝 Python 주니어 개발자 인터뷰 후기 데이트팝 Python 주니어 개발자 인터뷰 후기 blog.datepop.co.kr 위 블로그에서 기술면접 인터뷰 후기를 보게 되었고, 데이트팝 면접 질문들에 관해 스스로 공부했던 것을 대답하기로 했다. 비록 도달하진 못했지만 내가 지금 어느 정도인지도 확인할 필요가 있었는데, 생각보다 합격의 길이 먼듯 멀지 않은듯.. 한 걸음만 더 걸으면 되겠다고 생각했는데 왜 아직 모르는 게 있지?라는 생각을 면접 때마다 하게 되는 것 같다. 우선은 위 기술블로그를 보고 정확하게 질문에 대한 대답을 이해하기 위해 아래에 최선의 답을 적어보았다. 파이썬은 Garbage Collection는 메..

[Python] itertools 프로그래밍

파이썬 내장 라이브러리인 itertools는 특정배열에 대하여 순열이나 조합을 이용한 문제를 풀 때 유용하며 자신의 반복자를 만드는 모듈이다. 이 라이브러리에는 상당히 많은 함수들이 내장되어 있기에, 알아두고 가는 것이 많이 도움이 된다. 1. cycle 반복 가능한 객체를 순서대로 무한히 반복하는 iterator 생성 import itertools student = itertools.cycle(['가나다','라마바','사아자']) next(student) # 가나다 # 라마바 # 사아자 # 가나다 # 라마바 ... 2. accumulate 반복 가능한 객체의 누적 합을 계산하여 iterator로 반환하는 함수 보통은 iterator를 반환하기 때문에 아래와 같이 list로 깔끔하게 반환한다. month..

언어/Python 2024.01.16

Django 테스트코드에서 setuptestdata, setup 함수의 차이

setUpTestData와 setUp은 Django의 테스트 케이스 클래스에서 사용되는 두 가지 메서드로, 각각 다른 목적과 사용 시점을 가지고 있다. def setUpTestData(cls) setUpTestData 메서드는 테스트 클래스 전체에서 단 한 번 호출되며, 테스트 데이터를 설정하는 데 사용된다. 모든 테스트 메서드가 공유하는 고정된 데이터를 설정할 때 주로 사용된다. 데이터베이스에 대한 변경이 필요한 경우에만 사용해야하며, 한 번만 실행되기 때문에 경량의 테스트 데이터를 설정하는 데 적합하다. 데이터베이스에 데이터를 추가, 수정, 삭제할 수 있다. def setUp(cls) setUp 메서드는 각각의 테스트 메서드가 실행되기 전에 호출되며, 특정 테스트 케이스에 필요한 초기화 작업을 수행하..

Framework/Django 2024.01.01

HTTP POST 요청 시 headers 매개변수

HTTP 요청에 헤더를 포함하는 것은 일반적으로 API 요청에서 사용자 인증이나 기타 정보를 전달하기 위한 표준적인 방법이다. Cloudflare API는 클라우드플레어 계정의 특정 작업을 수행하기 위해 사용자를 인증하는 데에 헤더의 Authorization 필드를 사용하고 있다. 아래 예시 코드를 작성하면서 공부하였다. class UserAvatarGetUploadURLView(APIView): def post(self, request): """GetUploadURL.post 사용자가 사진을 첨부해서 클라우드플레어에 전송하기전에 먼저 일회용 업로드 url을 요청합니다. Args: url (str): 클라우드플레어에서 미리 지정한 일회용 url 요청 링크 one_time_url (str): post요청이..

Framework/Django 2024.01.01

[AWS] ELB 종류

CLB(Classic Load Balancer) 아마존 ELB 초기에 출시 4계층/7계층 프로토콜 모두 지원 HTTP/HTTPS, SSL/TLS 프로토콜 지원, SSL 인증서 사용 초기에 만들어진 것이다 보니 기능적 한계 있음 포트/헤더 등 데이터 수정, 변경 불가능 서버 기본 주소 변경 시 로드 밸런서 새로 생성 ALB(Application Load Balancer) 웹 애플리케이션 특화된 라우팅 제어 L7(애플리케이션 계층) 로드 밸런서 대상 그룹 단위로 트래픽 분산 HTTP 헤더 확인하여 다양한 라우팅 기능 제공 트래픽 분배에 중점 HTTPS 프로토콜 이해 오토 스케일링 함께 사용해서 인스턴스(애플리케이션) 확장성 있음 대상 그룹 내 인스턴스 상태 검사 수행하고 문제 발생 시 장애에 대해 조치 취함..

AWS 2023.12.22

[AWS] Elastic Load Balancing

AWS에서는 ELB라는 로드 밸런싱을 제공한다. ELB는 EC2 인스턴스에서 운영하는 앱,컨테이너 서비스, 마이크로서비스 트래픽을 자동으로 분산 처리하는 기술이다. ELB는 HTTP/HTTPS, TCP, SSL 등 다양한 프로토콜을 지원한다. 또한 AWS CloudWatch 기능을 이용하여 로그와 메트릭을 모니터링할 수 있다. AWS의 오토 스케일링 기능과 결합해서 트래픽에 따라 인스턴스를 효율적으로 조절할 수 있다. 보안적으로 SSL 암호화를 지원한다. 그렇다면 로드 밸런싱이 뭘까? 한글로는 '부하 분산'이다. 로드 밸런싱이 이루어지기 전에는 여러 대의 서버 중 한 대라도 장애가 생기면 바로 서버 응답이 사라지는 문제가 발생했다. 그래서 과부하 등 다양한 이슈로 인해 서버 응답 전체가 문제가 생기는 경..

AWS 2023.12.22