본문 바로가기

전체 글

(424)
@SpringBootTest 와 @DataJpaTest 차이점, Diff between @SpringBootTest and @DataJpaTest @DataJpaTest는 @Component 를 스캔하지않는다. @Component 를 사용한 Bean Class를 사용하려면 @SpringBootTest를 사용해야 한다. @DataJpaTest는 @Component 붙은 Bean Class 를 ApplicationContext 로 로드하지 않아서 로딩이 빠른 장점이 있다. 2021.06.10 - [Programming] - Cascade Lazy 지연로딩 시 Proxy 프록시 객체의 null 값 문제 Exception Cascade Lazy 지연로딩 시 Proxy 프록시 객체의 null 값 문제 Exception test: 지연로딩 시 프록시객체의 null값 문제 - 지연로딩으로 연관관계가 있는 하위 객체가 프록시객체로 만들어진 경우, 해당 객체의 값..
Spring framework, @Transactional(readOnly=true), 스프링 프레임워크 읽기 전용 트랜잭션을 하는 이유는? 읽기 전용 트랜잭션에 관하여 스프링 프레임워크에서 제공하는 트랜잭션을 읽기 전용 모드로 설정 할 수 있다. @Transactional(readOnly = true) 위 어노테이션을 사용하면 강제로 플러시 호출을 하지 않는 한 플러시가 일어나지 않는다. 그 말은, Persist context 에 올라가 있는 내용을 동기화 시켜주지 않는다는 이야기 그래서 트랜잭션을 커밋하더라도 영속성 컨텍스트가 플러시 되지 않는다. 그래서 엔티티 등록, 수정, 삭제 가 동작하지 않는다. (읽기만 가능하다) 또한 변경 감지를 위한 스냅샷 비교 등 무거운 로직들을 수행하지 않으므로 성능이 향상된다. 2021.07.20 - [Programming] - Spring MVC 프레임워크 구조 Framework 구성요소 Spring M..
네트워크 망 구성 (AWS) 에 관하여.. 순서 등 네트워크 망 구성에 관하여 VPC 생성 (클래스 설정, CIDR 설정) Subnet 생성 용도에 맞도록.. AZ 분리, 몇개씩 할당해줄지 설정 Route table 확인 Internet Gateway 생성, 연결 (모르는 ip 전체를 받을 곳) -> 이 후 aws 에서 관리해주어서 신경 안써도 됨 Routing table 에서 routes 수정 -> local 로 받을 destination 기본으로 있고, -> 나머지들 다 internet gateway 로 받도록 설정 (0.0.0.0/0 을 위에 만든 igw 로 연결) Routing table 에서 subnet 연결 편집 -> 위에서 만든 subnet 중, 해당 라우팅테이블에 넣고 싶은 subnet 들을 연결해준다. -> (e.g. public / pr..
컨테이너란? 왜 나왔는가? 도커란? 사용법은? Nextstep 우테캠 프로 인프라 관련 교육 중 부분을 정리 https://edu.nextstep.camp/ 클라우드 서비스를 사용하는 것에 대하여.. 조금 지나서 다시 읽어보니 이해되는 내용이 더 많아서 정리하기 좋았음 블로그에서도 볼 수 있음 -> https://itdar.tistory.com/ Docker 컨테이너에 관하여 우선 컨테이너란? Servlet container, IoC container, Bean container 등 -> 각 무엇인가의 라이프사이클을 관리함 -> 생성 - 운영 - 제거 까지 생애주기를 관리하는 것은 각각의 격리가 필요하다. Docker container는 무엇을 해결하려고 나왔나? ** 기존에는..... HW장비 마련하고, (OS 가상화로 해결 가능) OS 설치하고,..
클라우드란? 클라우드 서비스를 사용하는 이유는? Nextstep 우테캠프로 인프라 관련 교육 중 부분을 정리 https://edu.nextstep.camp/ 클라우드 서비스를 사용하는 것에 대하여.. 조금 지나서 다시 읽어보니 이해되는 내용이 더 많아서 정리하기 좋았음 클라우드란? - 인터넷을 통해서 원격으로 접근하는 모든 것을 말함 - 클라우드 컴퓨팅은 인터넷을 통해 여러 리소스(서버, 데이터베이스, 네트워킹 등)을 관리하는 것 클라우드 사용의 이유는? - 관심사를 나눈다. 아래와 같은 관심사들 개인서버 데이터를 어떻게 관리할 것인가? >> 백업은 어떻게? >> 보안 이슈는 없나? 서버를 어떻게 관리할 것인가? >> 장비 못 끄나? >> 다른 프로그램 돌려도 되나? >> 노트북 두고 다녀야 하나? >> 장비 망가지면 서비스도 중단되나? 네트워크를 어..
Spring MVC 프레임워크 구조 Framework 구성요소 아래와 같은 구조, 9시 방향부터 6시 방향까지 시계 방향으로 진행된다. 1. client 요청이 DispatcherServlet에게 전달된다. 2. DispatcherServlet은 HandlerMapping을 사용해서 client요청을 처리할 Controller 객체를 추출한다. 3. Controller에서 model을 사용하여 client의 요청을 처리한다. 4. Controller는 처리결과 data를 Model(AndView)에 담아서 return한다. 5. DispatcherServlet은 ViewResolver로부터 응답결과를 생성할 view 객체를 추출한다. 6. View는 client에게 전송할 응답이다. Dispatcher Servlet Dispatcher Servlet = Contro..
Python sandglass 파이썬 모래시계 * 찍기 알고리즘 파이써닉하지 않은 모래시계 생성 코드 def calculate_star_count(input_number, row_index): return abs((input_number//2 - row_index) * 2) + 1 def calculate_space_count(input_number, star_count): return (input_number - star_count) // 2 def draw_space(space_count): for j in range(0, space_count): print(' ', end='') def draw_star(star_count): for j in range(0, star_count): print('*', end='') def new_line(): print() if..
Nginx 를 사용한 Load balancer 역할의 Reverse proxy 적용 시, 늘어나는 뒷단 서버의 개수만큼 생각처럼 수용량이 늘지 않을 경우 (socket: too many open files) 로드밸런서 역할을 할 리버스프록시 서버 nginx 가 들어있는 docker container 를 실행했다. 처음에는 리버스프록시 뒷단에 ec2 두대로 k6 확인을 했었는데 대략 800? VUs 까지 버티는 것으로 보였다. 아니.. 그러면 단순히 ec2 를 세대, 네대, 다섯대 늘리면 과부하(stress) 테스트를 했을 때 버틸 수 있는 VUs 수가 그 만큼 선형으로 증가하는가?? 해서 ec2 를 5대까지 늘려보았다. 근데 계속 1000 VUs 근처에서 too many open files 에러가 나면서 request fail 이 뜬다. 나중에 보니 정확히는 1024 VUs 였는데, ulimit -a ulimit -aH // 하드 ulimit -aS // 소프트 유저 리밋에서 파일 오픈 가능 개수가 1024..