🚀 #15. 3SUM 🌠 내 풀이 (3 포인터) class Solution: def threeSum(self, nums: List[int]) -> List[List[int]]: # 3 포인터?? answer=[] nums.sort() for i in range(len(nums) -2): p1 = 0 p2 = i+1 p3=len(nums)-1 while p1 0: r -= 1 else: l += 1 return output 🌠 과정 3개의 포인터를 이동해 가며 합이 0인 것을 찾는 방식으로 p1, p3 포인터 범위 내부에서 p2를 for문으로 순회하며 찾아내는 과정이다. 코드레시피 사이트에 따르면 시간 복잡도가 O(n^2)이지만 단순 브루트 포스를 사용할 경우 3중 for문을 사용으로 시간 복잡도가 O(n..
🚀 스프링 시큐리티 스프링 환경은 정책에 따른 여러 Spring-Security가 공존할 수 있어 필터 Filter- Chain에 적용할 경우 충돌 문제가 생긴다. 때문에 Filter- Chain에 Proxy를 구성하여 시스템이 보안 상태를 동적으로 선택할 수 있도록 구성할 수 있다. 🍕 Authentication(인증)의 구조 🍕 CSRF(Cross-Site Request Forgery) CSRF는 웹 애플리케이션의 취약점 중 하나로, 피해자가 의도하지 않는 요청을 통한 공격이다. 🌠 Get 방식 공격 / Post 방식 공격 물론 공격자가 직접 Get요청을 보낼 수는 없다. 공격자의 의도를 실현 하기 위해서는 피해자가 아래와 같은 요청을 보내도록 유도해야한다. 공격 방법으로는 Link/ Image 공격..
🚀 메세지 큐 사용자의 입력을 메시지로 전달하는 시스템에서 어떤 프로세스에 대한 메지시를 저장하기 위해 할당된 큐 장점 비동기(Asynchronous): Queue에 넣기 때문에 나중에 처리할 수 있습니다. 비동조(Decoupling): Appliction 과 분리할 수 있습니다. 탄력성(Resilience): 일부가 실패 시 전체에 영향을 받지 않습니다. 과잉(Redundancy): 실패할 경우 재실행 가능합니다. 보증(Guarantees): 작업이 처리된걸 확인할 수 있습니다. 확장성(Scalable): 다수의 프로세스들이 큐에 메시지를 보낼 수 있습니다. 🚀 메세지 브로커 생산자에 의한 요청(메세지)를 Queue에 넣어 순차적 처리하는 방식으로 데이터 통신에서 발생하는 병목현상을 줄일 수 있다. 🍕..
🚀 What is Swagger? Swagger를 사용하면 기계가 읽을 수 있도록 API의 구조를 설명할 수 있다. 정리하자면 우리가 별도로 UI를 HTML 파일로 제작하지 않아도 Swegger 에서 필요한 문서 형태를 모두 제공하고 결과값 또한 보여주는 툴이다. Swgger 공식 홈페이지 프로젝트 예시 Spring Cloud 프로젝트에 들어가기전에 API문서를 별도로 만들 필요없이 빠른 개발 할 수 있도록 도와주는 툴을 설정한다. Controller 구현 @Api @RestController public class FileUploadController { @Autowired FileUploadService fileUploadService; @ApiOperation("이미지 파일 업로드") @PostMa..
🚀 Spring Cloud 서론 Scale-Up? Scale-Out? Scale-Up 한대의 서버로 더 높은 성능으로 서비스를 운영 Scale-Out 여러대의 서버로 분산하여 서비스를 운영 블루그림 배포 블루단계: 서비스 배포 이전 단계 그린단계: 서비스 배포 이후 단계 서버 부하 분산을 위한 네트워크 서버: 무언가를 제공하는 대상 혹은 그 주체 네트워크: 통신설비를 갖춘 컴퓨터를 이용해 서로 연결 시켜주는 조직이나 체계 어떠한 일이나 문제점을 처리하는 긴밀하게 연결되어 효율적으로 움직일 수 있는 체계 DNS 구성 및 활용 localhost:8080 도메인이 지루해? 사용자의 컴퓨터의 설정에 따라 다름 Windoew -> System32 -> drivers -> etc 파일에서 기본설절 {사용자 URL}..
🚀 카카오 실패율 풀이 🌠 내 풀이(틀린것) def solution(N, stages): answer = [] player = [0] * (max(stages)+1) length = len(stages) for i in stages: player[i] += 1 j=0 for i in player: j +=1 if length == 0: fail = 0 else: fail = i / length answer.append((j,fail)) length -= i answer = sorted(answer, key=lambda t: t[1], reverse=True) answer = [i[0] for i in answer] return answer n = 5 stages = [2, 1, 2, 6, 2, 4, 3,..
🚀 Spring Cloud 서론 Spring Cloud is a framework for building robust cloud applications. The framework facilitates the development of applications by providing solutions to many of the common problems faced when moving to a distributed environment. Applications that run with microservices architecture aim to simplify development, deployment, and maintenance. The decomposed nature of the application..
ORM (Object - Relational - Mapping) 객체와 DB를 매핑하는 기술로 객체와 테이블을 자동으로 매핑해서 패러다임의 불일치 문제를 자동으로 해결해준다. SQL 중심의 매핑이 아닌 자바 클래스 위주의 매핑이다. ####모든 자동 매핑이 ORM은 아니다! 객체와 DB를 자동으로 매핑해준다는 점에서 결국 Mybatis 또한 ORM에 속할지도 모르지만 직접 쿼리를 작성한다는 점에서 SQL 중심의 개발 방식에 가깝기 때문에 ORM 진영에는 반대에 있다고 할 수 있다. 🚀 Hibernate Hibernate는 JPA의 인터페이스를 구현한 구현체이다. JPA와 Hibernate는 마치 자바의 interface와 해당 interface를 구현한 class와 같은 관계이다. 🚀 JPA(Java P..
기존의 아키텍쳐 전통적인 CRUD 아키텍처 기반에서 Application을 개발 및 운영하다가 보면, 자연스럽게 Domain Model의 복잡도가 증가하고 그에 따라 유지보수의 비용이 증가하고 Domain model은 설계의 방향과 다르게 변질된다. 이러한 복잡성 속에서 개선할 수 있는 방향은 데이터 흐름의 역할을 분리하는 방법이었다. CQRS(Command Query Responsibility Segregation) 명령 조회 책임 분리의 의미를 가진 CQRS는 애플리케이션을 구성하는 하나의 아키텍쳐 패턴으로 정리하면 명령과 쿼리 역할의 분리를 의미한다. Command (Create, Insert, Update, Delete)와 쿼리(Select - Read)의 책임을 분리 CQRS는 총 3가지 방식으..
WebRTC(Web Real Time Communication) 이름 그대로 웹 브러우저 간에 플러그인 없이 통신 가능한 실시간 커뮤니티 서비스이며 음성 / 영상 / p2p 파일공유 기능을 이용할 수 있다. 정리하면 서버를 통하기 않고 바로 상태 브라우저로 정보를 전달(P2P : Peer to Peer)할 수 있다는 말이다. WebRTC vs WebSocket WebSocket의 상위 기술이 WebRTC 이며 기존의 WebSocket은 서버를 중심으로 Request 와 Respond 으로 정보 전달이 이루어진다. 때문에 메모리문제, 전달속도 비용 문제가 상당하다. 이러한 문제를 해결하고자 등장한 것이 WebRTC이다. 브라우저간 빠른 정보 전달이 가능한 이 기술은 기존 서버에서 발생한 메모리 문제, 전달..
- Total
- Today
- Yesterday
- 알고리즘
- docker
- 매트랩
- Algorithm
- Spring
- kakao
- 스프링
- interview
- OOP
- 백준
- 자바
- 디자인패턴
- security
- CS
- java
- Matlab
- springboot
- 면접
- spring-cloud
- 프로그래머스
- JPA
- 수학
- 릿코드
- nginx
- ajax
- 자격증
- 스프링부트
- 그래프
- C언어
- Solid
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |