일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- springboot
- JPA
- dataframe
- series
- pandas
- UML
- 헥사고날 아키텍처
- spring security
- BFS
- 포트앤어댑터 아키텍처
- 위상정렬
- java
- DP
- 백준
- 세그먼트 트리
- disjoint set
- Redis
- 문자열
- 데이터 flow
- ddd
- equals
- 비트마스크
- 알고리즘
- 자바
- 이펙티브 자바
- dfs
- docker
- 파이썬
- 스프링
- 다익스트라
- Today
- Total
목록2022/01 (4)
코딩못하는사람
HashMap은 key의 중복을 허용하지 않고 key-value를 1:1로 매핑하는 자료구조이다. hash의 제공해주는중 장점으로는 빠른 탐색,삽입,삭제에도 있지만 해시 충돌이라는 문제를 꼭 생각해봐야 한다. 해쉬 충돌 동일하지 않은 어떤 객체 X와 Y가 있을 때, 즉 X.equals(Y)가 '거짓'일 때 X.hashCode() != Y.hashCode()가 같지 않다면, 이때 사용하는 해시 함수는 완전한 해시 함수(perfect hash functions)라고 한다. Integer, Long, Double 같은 Number 객체는 객체가 나타내려는 값 자체를 해시 값으로 사용할 수 있기 때문에 완전한 해시 함수 대상으로 삼을 수 있다. 하지만 String이나 POJO(plain old java obje..
1.문제점 제작한 웹서비스의 반응시간이 엄청나게 길어지는 문제가 발생했다. 고가용성(High Availability)를 지키지 못한 예이다. 2.접근 반응시간이 길어지지만 결국에는 정상 API를 수행하는점을 바탕으로 로드밸런싱 과정에서 일어난 문제라고 추측하였다. 3.원인 로드밸런싱 해 놓은 서버를 가지고 있는 EC2가 서비스 기간이 만료되어 서버가 죽었던 것을 까먹고 있었다. 그에 따라서 라운드 로빈 방식으로 다운된 서버에 계속 부하를 보낸 후 default 설정만큼 대기하고 살아있는 서버에서 작업을 해온 것이다. (default 설정은 max_fails=1,fail_timeout=10이다.) 옵션 ip_hash : 같은 방문자로부터 도착한 요청은 항상 같은 업스트림 서버가 처리 할 수 있게 한다. w..
@Transactional 어노테이션을 AOP와 PSA의 관점에서 공부해보았다. AOP(Aspect Oriented Programming) @Transactional 어노테이션을 사용하면 별도의 트랜잭션 관련 코드없이 트랜잭션 서비스를 이용할 수 있다. 트랜잭션에 대한 공통 코드를 어노테이션이 AOP를 통해 대신 처리해주어 우리가 구현해야 할 비즈니스 로직에 집중할 수 있게 해주는 것이다. Spring에서는 Proxy pattern을 이용해 AOP를 구현한다. @Transactional을 사용하고 있는 aspect를 보자. @Transactional어노테이션이 붙어있는 곳에서 transactionalMethodExecution메서드를 실행하라는 aspect이다. transactionalMethodExec..
스프링 시큐리티를 활용하여 인증,인가를 처리할 때 @AuthenticationPrincipal를 쓰면 쉽게 UserDetails를 구현하여 만든 Principal 인스턴스를 얻을 수 있었다. 쉽게 사용했지만 어떻게 동작하는지 궁금해져 찾아 보았다. Spring Security에서 AuthenticationFilter를 거쳐 인증을 완료하게 되면 Authentication 인터페이스를 구현한 UsernamePasswordAuthenticationToken을 SecurityContextHolder에 설정하게 된다. @AuthenticationPrincipal는 스프링 시큐리티의 AuthenticationPrincipalArgumentResolver 클래스를 활용하여 SecurityContextHolder에 ..