일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 헥사고날 아키텍처
- 위상정렬
- ddd
- docker
- spring security
- JPA
- disjoint set
- BFS
- dfs
- 백준
- 이펙티브 자바
- springboot
- pandas
- 스프링
- 알고리즘
- 다익스트라
- java
- equals
- 자바
- 세그먼트 트리
- UML
- 포트앤어댑터 아키텍처
- 파이썬
- 데이터 flow
- Redis
- 비트마스크
- series
- dataframe
- 문자열
- DP
- Today
- Total
목록issue 기록 (6)
코딩못하는사람
1.문제점 제작한 웹서비스의 반응시간이 엄청나게 길어지는 문제가 발생했다. 고가용성(High Availability)를 지키지 못한 예이다. 2.접근 반응시간이 길어지지만 결국에는 정상 API를 수행하는점을 바탕으로 로드밸런싱 과정에서 일어난 문제라고 추측하였다. 3.원인 로드밸런싱 해 놓은 서버를 가지고 있는 EC2가 서비스 기간이 만료되어 서버가 죽었던 것을 까먹고 있었다. 그에 따라서 라운드 로빈 방식으로 다운된 서버에 계속 부하를 보낸 후 default 설정만큼 대기하고 살아있는 서버에서 작업을 해온 것이다. (default 설정은 max_fails=1,fail_timeout=10이다.) 옵션 ip_hash : 같은 방문자로부터 도착한 요청은 항상 같은 업스트림 서버가 처리 할 수 있게 한다. w..
1.문제점 JPA를 통한 개발을 하다보면 한번쯤 만날 수 밖에없는 에러이다. JPA를 사용하여 DB에 저장된 리소스를 불러와서 반환하는 경우, 혹은 사용할 때 발생했던 에러이다. 2.접근 JPA에 대한 이해가 부족하다 생각하여 JPA강의와 강의자료를 다시 보며 개념을 스터디 했다. JPA의 전반적인 동작 과정 트랜잭션,영속성 컨텍스트,Proxy,Lazy Loading에 대한 이해가 있어야 에러를 이해하고 수정할 수 있다. 3.원인 간단한 예시를 들어서 설명해보겠다. Member와 Message가 연관관계를 맺고 있고 1:N관계를 가지고 있다. Message 엔티티에서는 Member Fetch 전략을 Lazy로 설정해 준 상태이다. 어플리케이션의 메시지 단건 조회 API의 과정은 다음과 같다 그럼 이제 오..
문제점: Review 엔티티에 대해서 테스트 코드를 작성하던중 모두 성공했지만 엔티티 삭제 테스트에서 엔티티를 삭제해도 삭제되지 않는 상황을 마주쳤다. 리뷰 엔티티는 간단하게 다음과 같은 연관관계를 가지고 있다. 접근: JPA 연관관계가 설정이 복잡하다면 삭제 되지 않는다는 기억이 있었다. 김영한 강사님의 Cacade,orphanRemoval 강의를 듣고 개념을 다시 잡았다. 원인: @OneToOne이나 @OneToMany에서 붙혀주는 영속성 전이 Cascade 때문에 일어난 문제였다. 필드에 cascade = CascadeType.ALL을 붙혀주면 그 필드와 연관된 엔티티를 persist 해주지 않아도 persist한 효과가 나면서 영속성이 된다. 하지만 Cascade를 사용하면 편리하긴하지만 주의해야..
문제점 스프링 시큐리티를 활용하기 위해서는 DB에 해쉬로 암호화된 패스워드를 저장해야 한다. 따라서 BCryptPasswordEncoder에 encode 메서드를 통해 해쉬암호화를 사용하여 패스워드를 저장했다. 문제는 패스워드 변경 관련 로직 및 테스트 코드 작성에서 발생했다. @Test public void 회원정보_업데이트_테스트() throws Exception { //given User user = userRepository.findByName("test").orElseThrow(NoSuchUserException::new); UpdatePasswordDTO updatePasswordDTO = new UpdatePasswordDTO("12345", "1234", "1234"); //when use..
1.발단 프로젝트를 진행하다보면 생각보다 많은 DTO가 필요했다. 대부분의 DTO에는 롬복의 @Data 어노테이션으로 설정을 해주고 @AllArgsConstructor를 붙혀주었다. 하지만 이러한 DTO들을 활용해서 Controller를 POSTMAN으로 테스트할때 잦은 에러가 나타났다. 여러 코드를 살펴보니 DTO에 @AllArgsConstructor,@NoArgsConstructor 두개다 붙어있는 것을 발견했다. 두개의 정의는 다음과 같다. @AllArgsConstructor - 모든 필드 값을 파라미터로 받는 생성자를 만들어준다. @NoArgsConstructor - 파라미터가 없는 기본 생성자를 생성해준다. 그런데 나는 분명히 전체 모든 필드를받는 생성자를 사용했는데 왜 에러가 날까 코드를 보다..
JPA를 공부하기 위해 미니 프로젝트를 진행할 때 선물 엔티티에 구매한 회원,받은 회원으로 회원 외래키를 단방향으로 두개 참조해야 하는 구조였다. JPA 공부할 때 @JoinColumn에는 매핑할 외래키 이름으로 name설정을 해줘야 한다는 기억으로 단순하게 다음과 같이 코드를 작성했었다. 하지만 바~로 에러가 발생했다. Repeated column in mapping for entity: gifticon.giticonshop.domain.Gift column: member_id should be mapped with insert="false" update="false" 읽기 전용으로 바꿔서 뻘짓도 했지만 DB에 JPA로 생기는 테이블을 ddl-auto: create 모드로 설정해주고 반복해서 이름을 바..