일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 기업분석
- FCF
- 주린이
- 금리인상
- 백준
- 자바
- StringBuffer
- 알고리즘
- 인플레이션
- XLF
- 제태크
- Java
- object
- 다형성
- 객체지향
- mco
- 무디스
- javascript
- etf
- 현금흐름표
- 오버라이딩
- 접근제어자
- 금리인하
- 잉여현금흐름
- S&P500
- 배당성장
- 미국주식
- 프로그래머스
- 그리디 알고리즘
- 주식
- Today
- Total
목록분류 전체보기 (209)
오늘의하루
예외 발생 이유 세션이 사라진 후 지연 로딩(LAZY) 상태에서 프록시 초기화가 불가능하기 때문에 발생하는 예외 지연 로딩 ( FetchType.LAZY ) 지연 로딩을 하는 이유는 JPA에서 발생하는 문제 중 가장 유명한 N + 1 문제를 해결하기 위함이다. 지연 로딩은 한번에 연관된 데이터까지 한번에 불러오는 것이 아닌 연관된 데이터를 필요한 시점에 그때 그때 불러오는 것이다. 그래서 왜 지연 로딩을 쓰는가? 예를 들어 Member과 Team테이블이 있고 Member와 Team는 N:1 관계가 있다. 이때 즉시 로딩(EAGER)을 하게 된다면 Team을 조회 시 해당 Team을 가진 모든 Member를 하나씩 조회하게 된다. 분명 Team 1개를 조회했는데 Team에 속한 Member N개의 조회 쿼..
CICD란 지속적인 통합과 지속적인 배포를 말한다. Jenkins는 이런 기능을 보다 편리하게 할 수 있는 Tool이다. 이번 연습에서는 Docker를 사용하지 않고 Jenkins만 사용했다. EC2 프리티어 사용할 경우 필수 EC2 프리티어에서 Jenkins를 바로 사용하는 경우 메모리 부족으로 서버가 멈추는 현상이 발생한다. 이때는 스왑 메모리를 사용하여 메모리를 늘려서 이러한 현상을 막을 수 있다. 이건 유료 서비스가 아니기 때문에 마음 편히 사용하셔도 좋습니다. Step1-2. EC2 프리티어 Jenkins 서버 터지는 현상 해결 CI / CD를 연습하기 위해 Jenkins에 대해 공부를 시작했는데 빌드시 서버가 터지는 일이 너무 많아서 매번 EC2 인스턴스를 중지하고 다시 실해을 매번 반복하다 ..
Nginx의 장점 중 하나인 로드 밸런싱이 생각나서 어떻게 하는건지 찾아보다 까먹지 않도록 작성 http { upstream backend_servers { server backend1.example.com; server backend2.example.com; } server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm; try_files $uri $uri/ /index.html =404; } location /api { proxy_pass http://backend_servers; proxy_redirect off; proxy_set_header Host $hos..
지금 문제점은 빌드 후 포그라운드에서는 정상 실행이 되지만 백그라운드 실행 시 연결이 되지 않는것이다. 이를 위해 Ubuntu에서 포트번호와 pid값을 자주 찾게 되어 외우게 되었다. Execute Shell #!/bin/bash jar_file="demo/target/demo-0.0.1-SNAPSHOT.jar" pid=$(pgrep -f "demo-0.0.1-SNAPSHOT.jar") if [ -n "$pid" ]; then kill -9 $pid echo "실행 중인 프로세스를 종료했습니다." else echo "실행 중인 프로세스가 없습니다." fi if [ -f "$jar_file" ]; then nohup java -jar $jar_file & echo "새로운 JAR 파일을 실행했습니다." e..
CI / CD를 연습하기 위해 Jenkins에 대해 공부를 시작했는데 빌드시 서버가 터지는 일이 너무 많아서 매번 EC2 인스턴스를 중지하고 다시 실해을 매번 반복하다 Swap이라는것을 알게되었다. 이를 적용해보니 실제로 서버가 터지는 현상이 없어졌다. 스왑 파일을 사용하여 Amazon EC2 인스턴스의 스왑 공간으로 메모리 할당 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에서 스왑 파일로 사용할 메모리를 할당하려고 합니다. 어떻게 해야 하나요? repost.aws 1. Create Swap File dd 명령을 통해 Root 파일 시스템에 Swap File을 생성한다. bs 명령어 : 블록의 크기 count 명령어 : 블록의 수 아래의 Swap File은 약 4GB..
EC2에서 Jenkins 설치 및 Maven Project 빌드하기 Step1. Jenkins 설치 후 프로젝트 Build 및 Start Step 1의 목표 1. AWS에서 EC2 인스턴스를 프리티어로 하나 생성한다. 2. Ubuntu 환경에서 Jenkins를 설치한다. 3. 자신의 Git Repository에 있는 Sptring Boot 프로젝트를 Clone한다. 4. Jenkins를 이용하여 Build 한다. jangto.tistory.com Git Hub에서 WebHook 설정하기 Jenkins에서 설정한 Repository에서 Settings > Webhooks를 선택한 후 Add webhook을 통해 webhook을 설정할 수 있다. Payload URL : [EC2 Public IP]:[Jen..
Step 1의 목표 1. AWS에서 EC2 인스턴스를 프리티어로 하나 생성한다. 2. Ubuntu 환경에서 Jenkins를 설치한다. 3. 자신의 Git Repository에 있는 Sptring Boot 프로젝트를 Clone한다. 4. Jenkins를 이용하여 Build 한다. 5. Jar 파일을 실행시킨다. 인스턴스 생성 및 연결 AWS에서 EC2 인스턴스를 Ubuntu 환경으로 생성 후 SSH를 통해 연결하였다. Ubuntu 환경에서 Jenkins를 설치 Jenkins 공식 홈페이지에 친절하게 다운로드 받는 방법이 명시되어 있다. Jenkins 포트번호 변경 및 접속 $ sudo vim /lib/systemd/system/jenkins.service # Port to listen on for HTTP..
이미지 생성 #docker build -t DOCKER_IMAGE_NAME:DOCKER_IMAGE_TAG . docker build -t docker-ex:0.0.1 . 도커 실행 #docker run -p HOSTPORT:WEBSERVERPORT DOCKERIMAGE-REPOSITORY:DOCKERIMAGE-TAG docker run -p 8088:8088 docker-ex:0.0.1 #이름 지정하는법 docker run --name docker-name -p 8088:9090 docker-ex:0.0.1 #백그라운드 실행방법 docker run -d --name docker-name -p 8088:9090 docker-ex:0.0.1 포트 번호 관련 알게된 내용 앞에 작성되는 건 호스트의 포트번호이고..
JPA에서 연관 관계 매핑에 대해 쉬운 이해를 하기 위해서는 객체와 테이블의 연관 관계의 차이를 이해해야한다. 객체를 테이블에 맞추어 그대로 모델링 한다면 객체 간 협력 관계를 만들 수 없게 된다. 테이블은 외래키(FK)로 조인하여 연관 된 테이블을 찾을 수 있지만 객체는 참조를 통해 연관된 객체를 찾을 수 있게 된다. 아래는 Member 테이블과 Team 테이블이 N:1관계일때 Entity를 어떻게 만들어야 하는지에 대해 작성하였다. Member 테이블은 Team 테이블의 Id값을 외래키(FK)로 가지고 있다. // 객체를 테이블에 맞추어 데이터 중심으로 모델링 한 경우 @Entity public class Team{ @Id @Column(name = "TEAM_ID") private Long id; ..
JPA에서 기본키를 매핑하는 방법은 @Id, @GeneratedValue 이렇게 두가지가 있다. @Id의 경우 직접 할당 하겠다는 의미이기 때문에 별다른 내용이 없다. 매핑 방법 @GeneratedValue는 자동 생성을 해주는 것이다. SEQUENCE : DB의 시퀀스 사용 ORACLE의 경우 @SequenceGenerator가 필요하다. IDENTITY : DB에 위임 TABLE : 키 생성용 테이블을 만들어서 사용한다. @TableGenerator가 필요하다. 장점으로는 모든 DB에서 공통적으로 사용가능하다. 단점은 테이블이 생겨나기 때문에 추후 성능에 좋지 않다. AUTO : Hibernate에서 지정한 방언에 따라 자동으로 지정된다. (기본값) IDENTITY 전략 - 매핑 이 전략은 기본 키 ..