JPA를 쓸 때 연관관계로 인한 매핑문제로 무한참조(@XToOne)가 생길 수 있다. 이를 막기 위해default인 EagerLoading을 LazyLoading으로 거는데 여기서 문제가 생길 수 있다.바로,Lazy는 기본적으로 실제 객체가 아닌 프록시 객체를 감싸져
Java enum은 제한된 값 목록을 갖는 타입입니다. enum은 다음과 같은 이점을 갖습니다.enum은 컴파일 타임에 타입 안정성을 보장합니다. 특정 범위의 값만 사용 가능하므로 컴파일 오류나 런타임 예외를 줄입니다.enum은 의도적으로 가독성이 높습니다. 값들이 명
Jpa Data Repository 사용시, @DataJpaTest를 사용하여 입베디드 모드로 h2 DB를 사용할 수 있지만 현존 사용하는 운영 DB로 사용시 @SpringBootTest 를 사용할 수 있다. 이 블로그에서는 SpringBoot Test 로 테스트하는
여기서 아래 좌측에 json 파일 열기를 눌러라.텍스트파일로 열어서 "startingDirectory": "{원하는 path}" 을 추가하자.원하는 path는 window 경우 path 로 지정해줘야 한다.설정을 다 저장하고 다시 시작하자.바로 이 경로로 시작되더라.h
100백만 건이 넘은 건수가 있는 테이블 reservataion에서 조회 성능을 측정해보겠습니다.100백만 건수 insert 작업을 하기 위해선 Test 에서 실행할려고 합니다.Junit5 기준으로 Test 클래스를 생성합니다.기존에 작업한 쿼리들을 잘 보고 싶기에 h
단방향 - hash 방식, 단뱡향은 복호화가 안된다는 뜻!양방향 hash -> salt를 쓰는 이유!: 똑같은 문자열의 패스워드라도 hash 값이 다르게 할 수 있다!현재는 Bcrypt 암호화 알고리즘을 많이 사용하는 추세: hash, 단방향이기 때문에!설정1) 인터페
HandlerMethodArgumentResolver 를 이용하여 Custom Annotion 을 만들어 User 정보를 쉽게 가져오기를 실습하겠습니다.회원을 관리하는 API 를 만들게 되면 꼭 필요로 하게 되는 것이 HandlerInterceptorAdapter 를
실행중인 프로그램을 프로세스라 부르고, 그 프로세스의 실행단위가 스레드이다.컴퓨터 CPU core가 사실, Thread 단위로 작업을 처리한다.그리고 프로그램이 돌아가면서 여러가지 작업을 동시에 할 수 있는 것이 스레드이다.그래서 스레드가 많아지면 프로그램 내에서 할
리눅스의 경로 구분자는 /윈도우는 \\(백슬레시) 예를 들어, 파일 경로 지정할때이렇게 지정하면 윈도우에서는 되겠지만 리눅스에서는 안된다. (\\ 가 하나 더 있는 이스케이프를 하나 두어 경로라는 의미를 주기 위해서)자바에서는 운영체제별로 갖고있는 구분자를 제공해준다.
ELK는 위 그림과 같이, 분석 및 저장 기능을 담당하는 ElasticSearch, 수집 기능을 하는 Logstash, 이를 시각화하는 도구인 Kibana의 앞글자만 딴 단어이다. ELK는 접근성과 용이성이 좋아 최근 가장 핫한 Log 및 데이터 분석 도구들이다.1)
satic 클래스는 중첩 클래스(nested class)를 사용할 때 사용한다. 다음 코드를 보자.이런식으로 쓰면 다음 경로가 날아온다.경고: Inner class may be 'static'Reports any inner classes which may safely
ThradeGroup에서 사용자수를 295로 설정,무한한 시간대로 성능테스트를 해보았습니다.JMeter성능지표는 아래와 같습니다.사용자 수가 가장많이 사용할 서비스 기능은 스터디그룹 등록일 것으로 예상, 이 api의 성능을 테스트해본 결과는 아래와 같습니다.가장 중요한
스프링의 Logging Framework에서 가장 유명한 라이브러리가 바로 slf4j(Simple Logging Facade For Java) 입니다.slf4j는 다양한 자바 로깅 시스템을 사용할 수 있도록 해주는 파사드 패턴의 인터페이스라고 생각하시면 될 것 같습니다
구글 계정만 있으면 Gmail SMTP Server를 통해 무료로 이메일을 전송할 수 있다.springboot를 쓸려면 다음과 같이 설정과 지메일 send code를 사용해야 한다. 간단한 테스트를 위해 작성하면 다음과 같이 작성하면 된다.gradleapplicatio
pk란 Entity 개념에서 고유한 식별자다Entity 는 자신의 생명주기동안 형태와 내용이 급격하게 바뀔 수도 있지만 연속성은 유지해야 한다 (도메인 주도 설계 93p 참고)이렇게 변화하는 Entity 를 추적하려면 식별성이 부여되어야 하고, 식별자는 해당 시스템 내
문서화 역할코드에 결함을 발견하기 위함리팩토링 시 안정성 확보테스트 하기 쉬운 코드를 작성하다 보면 더 낮은 결합도를 가진 설계를 얻을 수 있음Test Driven Development (테스트 주도 개발)프로덕션 코드보다 테스트 코드를 먼저 작성하는 개발 방법TFD(
Entity : ImageDataControllerServiceRepositoryUtils : ImageUtils결과POST 이미지 첨부GET파일 이미지을 Body를 통해 보여줌.
윈도우에 있는 텍스트 파일에 있는 내용을 읽어 오는 기능(read)과 원하는 내용의 텍스트 파일을 윈도우의 원하는 경로에 쓰는(write) 자바 예제입니다. 해당 기능을 구현하기 위해 Java에서 기본으로 제공해 주는 File BufferedReader/WrtierFi
INNER JOIN: 기준이 되는 테이블 (left table)과 join이 걸리는 테이블(right table) 양쪽 모두에 matching되는 row만 select가 됨.LEFT JOIN: 기준이 되는 테이블 (left table)의 모든 row와 join이 걸리는
에프랩을 올해 2022년 1월부터 시작하여 6월까지 총 6개월의 멘토링과정을 수료하게 되었다. 아직도 처음 에프랩을 시작한 그 벅찬 감정이 기억이 난다. 애초에 내가 목표로 한 서비스회사에 취업하는 것은 못했지만 (생각보다 취업의 장벽이 엄청 높았다...) SI회사에서