전체 글
-
Spring 직렬화, dto 의 잘못된 이름의 함수가 있는 경우Java&Spring/Spring 2024. 6. 15. 17:47
Spring 의 컨트롤러 어노테이션인 RestController 를 사용하면, 함수의 리턴값이 json 으로 매핑이 된다. 다음과 같은 dto 의 경우는 getCapitalName 과 같은 함수가 있다. @Getterpublic static class RequestDTo { private final String name = "kris"; private final int age = 12 ; public String getThisIsFake() { return "fake"; } public String calculate() { return "false"; }} Spring 에서는 obejct mapper 의 replication 의 기능으로 이 함수가 필드 값을 호출하는 geeter 인지 아는 착각을 한다..
-
우아한 객체 지향 정리 (유투브)ProgrammingTheory/OOP 2023. 11. 8. 18:00
1. 무조건 lazy, 무조건 eager : 그런거는 없어, 경계를 잡는 방법의 차이다. 2. 연관관계를 끊자. 연관관계란 , 다른 객체를 탐색을 하는 경로로 디비 트랜잭션의 락을 전부 거는 상황이 나올수 있다.연관관계를 끊는 방법으로 객체의 다른 도메인의 속하는 객체의 id 를 넣고, 레포지토리에서 검색을 하자.레포지토리는 연관 관계를 정의하는 메서드로 이루어져 있어야 한다. 3. 도메인 에그리거트, 루트 를 생각하자.같이 생성이되는지, 같은 제약사항이 걸리는지 파악을 해야한다.같은 제약사항이 걸린다면 , 연관관계를 걸되, 다르면 그룹을 분리해서 id 로 참조하게 하여 데이터베이스 경합이 발생하는 성능 이슈를 최소화 해야한다. -> DDD 의 컨택스트를 잡는 기준이 될 수 도 있다. 왜 설계를..
-
Hindex - 프로그래머스 [자바]CodeingTestPrac/Java Coding Test 2023. 11. 6. 16:54
링크 : https://school.programmers.co.kr/learn/courses/30/lessons/42747 문제 H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다. 어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return 하도록 solution 함수를 작성해주세요. 제한사항 과학자가 발표한 논문의 수는 1편 이상 1,000편 이하입니..
-
[모던 자바 인 액션] part 1 - 1Java&Spring/Java 2023. 11. 3. 16:24
"Stream 을 이용하면 에러를 자주 일으키며 멀티코어 cpu를 이용하는 것보다 비싼 synchorized 를 사용안해도 된다" "synchronized" 키워드는 다음과 같은 비용을 수반할 수 있다. 대기 시간(Wait Time): 한 스레드가 락을 획득하기 위해 다른 스레드가 락을 해제하기를 기다려야 할 때 발생합니다. 이는 특히 공유 자원에 대한 경쟁이 치열할 때 성능 저하를 가져온다. 컨텍스트 스위칭(Context Switching) 비용: 락을 기다리는 스레드들 사이에서 발생하는 컨텍스트 스위칭은 CPU 시간을 소비한다. 메모리 일관성 비용(Memory Consistency Costs): 락을 사용하여 메모리 캐시 사이의 데이터 일관성을 유지하는 데 있어 추가적인 메모리 배리어(memory b..
-
DTO , VO - "내 돈 1000원이 달라서 핫식스를 못 먹는다고 ?"ProgrammingTheory/DDD 2023. 10. 27. 13:25
이글은 테크톡의 각종 영상과 각종 블로그를 읽고 작성한다. 최종 수정 : 2023 년 10월 27일 , 최초 작성일 2023.03.27 이 글은 DTO , VO 그리고 lombok 의 @Data 를 다룬다 DTO ,VO 둘다 데이터를 저장하는 객체(Object)이다. DTO는 데이터를 전송하기 위한 객체이며 불변일 수 도 있다. VO 는 값에 관한 객체이며 일반적으로 불변이여야 한다. DTO : Data Transfer Object (데이터. 전송. 객체) 처음 단어를 보았을때 엥 이게 뭐야 라는 생각을 했었다. DTO 를 DDD 의 Layerd 아키택처에서 다음 두가지 경우로 이용 할 수 있다. 1. API Layer 즉 controller 단에서 사용자와 데이터를 특정 형식으로 주고 받는 경우 . 2..
-
AWS 스왑 파일을 이용한 메모리 늘리기Project/TravelFeelDog 2023. 10. 25. 17:11
프로젝트 빌드와 배포중 빌드시간이 코드가 늘어감에 따라 증가하여 메모리를 늘리기로 하였다. 기존) $ free total used free shared buff/cache available Mem: 1892324 1097460 530728 1448 264136 638868 Swap: 0 0 0 $ df -h Filesystem Size Used Avail Use% Mounted on /dev/root 29G 3.9G 26G 14% / tmpfs 924M 0 924M 0% /dev/shm tmpfs 370M 1.0M 369M 1% /run tmpfs 5.0M 0 5.0M 0% /run/lock /dev/nvme0n1p15 98M 6.3M 92M 7% /boot/efi tmpfs 185M 4.0K 185M ..
-
Spring Security OIDC,JWT : 모바일/웹 연동 (2)Project/TravelFeelDog 2023. 10. 18. 12:21
이전 글입니다. https://chosunghyun18.tistory.com/177 Spring Security OAuth2 ,JWT : 모바일/웹 연동 (1) 이글은 Firebase 에서 OAuth2 , JWT 전환기(4) 에서 이어지는 글 입니다. https://chosunghyun18.tistory.com/176 Firebase 에서 OAuth2 , JWT 전환기(4) : 예외처리 지금까지 FireBase 를 사용한 시나리오에서 OAuth2 , JWT를 사 chosunghyun18.tistory.com 특정 url 을 통해 구글 로그인 페이지를 열고 로그인 하여 url 의 jwt 토큰을 받는 것을 만들었습니다. 이번에는 안드로이드 어플리케이션을 통하여 확인 하겠습니다. 로그인시 시퀀스 다이어그램은 ..
-
EC2 가비아 - 도메인 등록 + Nginx & CertBotProject/TravelFeelDog 2023. 10. 16. 18:33
Https 의 통신을 위하여 Certbot 을 사용한 권한 증명을 받는 구성을 합니다. 3 번째로 시스템을 구성 하며 기억을 위하여 글을 작성해 봅니다. 사전 준비 1. AWS 의 EC2 를 구성합니다. 2. 인바운드 아웃 바운드를 구성하고 탄력적 IP 를 할당받습니다. 3. 퍼블릭 IPV4 주소를 확인합니다. 가비아 준비 가비아의 경우 37 프로 이벤트를 진행하는 중으로 1년 도메인 구매시 16500 원입니다. AWS 의 도메인 서비스 Route53을 사용하여도 좋습니다. + 2023 년 연초에 가비아는 디도스 공격을 받아 도메인 서비스 이용이 반나절 중단된 상황이 있었습니다. 구매한 가비아의 DNS 설정을 합니다. 호스트가 @ 인 경우 http://sunghyun98:8080 호스트가 api 인 경우..