본문 바로가기

728x90

전체 글

동기화 방법 동기화 방법은 여러가지 방법이 있다 그중에서 나는 block을 하는 방법을 적용 시켜보았다. 다음엔 분산락을 이용해서 동기화를 시켜보겠습니다. Mono responseMono = decodedParsingService.fetchDataFromExternalApi(); // 1. 외부망에서 data를 가져온다. String response = responseMono.block(); // +@ 비동기 호출 기다리기 : data를 가져온다음에 decoding을 해야돼는데, 순서가 안맞으면 decodedDataDto값이 null이 나오므로 blcok을 이용해서 동기화를 시킴 DecodedDataDto decodedDataDto = decodedParsingService.handleApiResponse(respo.. 더보기
외부 API 가져오는 방법 외부 API를 가져올때 두가지 방법이 있다. RestTemplate Webclient RestTemplate는 블로킹 기반 동기 방법이고 Webclient는 논블로킹 기반 비동기 방법이라서 Webclient가 효율적이라고 생각해서 선택하게 되었다. 또한 spring에서도 추천하고있다. public Mono fetchDataFromExternalApi() { String apiUrl = "http://127.0.0.1/RESTAdapter/RecruitingTest"; // JSON 데이터를 전송하기 위한 객체 생성 testRequireDto testRequireDto = new testRequireDto(); testRequireDto.setName("아무개"); testRequireDto.setPhon.. 더보기
@RequiredArgsConstructor @NoArgsConstructor @AllArgsContstructor @RequiredArgsConstructor 예) private final FirstRepository firstRepository; , @NonNull private String name; main() { TestCon testCon = new TestCon("철수"); } @NoArgsConstructor 파라미터가없는 기본 생성자를 생성합니다. 예) private String name; private String address; public TestCon(String name, String address){ this.name = name; this.address = address; } main() { TestCon testCon = new TestCon(); } @AllArgsContstructor.. 더보기
Caused by: org H2 .jdbc.JdbcSQLSyntaxErrorException: Table not found; SQL statement 이에러로 꽤 시간을 잡아먹었다. ㅠㅠ 연관관계로 되어있던 클래스들이 테이블로 생성이 안되서 계속 코드와 이론을 재정비 했는데, 결론적으로 환경설정 문제였다. ㅠㅠ jpa: # 추가해준 부분 database: h2 defer-datasource-initialization: true 이렇게 해주면 클래스가 테이블로 생성이 잘된다. ㅠㅠ 역시 환경설정이 너무나도 중요하다. 더보기
댓글 생성시 고려사항 댓글 생성시 특정 board에 댓글을 달기 때문에 board와 연관관계를 맺고 findbyid를 이용해서 board를 불러온다. 이렇게 board를 불러오고 댓글을 생성시에는 select + insert 쿼리가 날라간다. 하지만 getOne()을 사용할시 다른 필드에 접근했을 경우 db에 존재하지 않는다면 예외를 반환하고 존재하는 경우 lazy방식으로 조회하기 때문에 데이터의 불일치 문제를 해결할 수 있다. 따라서 연관 관계를 갖는 엔티티를 저장할 때, 연관된 엔티티 조회시 getOne()을 사용하는 것이 성능 개선에 도움이 된다. 더보기
대댓글 로직을 생각해보자 1. 익셉션 : 게시글이 있는지 확인, 댓글이 있는지 확인. 2. 로직: 2-1 레포지 토리에서 length값을 확인해서 0이면 새댓글 추가. 2-2 만약 레포지토리에서 length 값을 확인해서 1이 아니라면 입력받은 댓글의 계층,순서,댓글그룹을 가져옴. 2-3 댓글의 계층, 순서, 댓글 그룹을 확인한후 계층과 순서는 계층, 순서는 +1을 해주고, 댓글그룹은 댓글과 같은 그룹으로 작성해주고 부모 노드, 자식노드 숫자를 작성 2-4 프론트 입장에선, 계층에 갯수 만큼 재귀를 돌려서 띄어쓰기를 한다. 더보기
단방향 연관관계 vs 양방향 연관관계 장단점이 존재한다. 1. 단방향 연관관계는 dto로 변환하지 않아도 됨으로 그만큼 코드길이가 줄어든다. 2. 양방향 연관관계의 장점은 쿼리를 줄여준다. 왜냐면 하나의 객체로 보기때문이다. 3. 아직도 어떤것이 좋은지 정확한 조사가 필요하다. 더보기
윈도우에서 kafka 실행방법 1. zookeeper를 먼저 실행한다. .\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties 2. kafka를 실행한다. .\bin\windows\kafka-server-start.bat .\config\server.properties 더보기

728x90