전체 글 61

Jenkins를 통한 React.js 자동 배포 [Nginx]

저번에 리액트 프로그램을 진행하게 되면서 CICD 구축의 중요성을 새삼 깨닫게 되었다. 운영할때마다 로컬에서 배포폴더 만들고, 서버에 직접 올리는 작업은 너무 시간도 많이 들었고, 무엇보다도 생산적이지 않았다. 그리하여 이번 리액트 프로그램을 진행할때엔 dev 브랜치에 푸쉬하면 바로 서버에 자동 빌드되는 환경 속에서 개발되길 원했다. 그리하여 본인은 젠킨스를 통해 자동 빌드를 하게 되었다. 먼저 GitHub에 Webhook을 설정해준다. Webhook(웹훅)이란, 서버에서 어떠한 작업이 수행 되었을 때 해당 작업이 수행되었음을 HTTP POST로 알리는 개념을 말한다. (https://docs.iamport.kr/tech/webhook) ## 소스 코드 관리 1. 해당 깃 레포지토리와 자격 입력 2. 설..

인프라 2021.07.18

[ JPA ] 엔티티 toString 무한 호출

1. JPA 상황: Team(팀 table)과 department(파트 table) join 을 하려고 한다. 원인 : 단방향이 아닌 양방향 연관관계를 맺기 때문에 이 관계를 맺은 두 엔티티가 서로 toString을 호출하면서 무한반복된다. error Message : Method threw 'java.lang.StackOverflowError' exception. Cannot evaluate 패키지.toString() 코드 관계 Team -> department : 1:N department -> Tean : N:1 에러 해결 : ToStringBuilder을 사용하여 해결하였다.

DB/JPA 2021.07.18

고등학교 졸업전시 - 프로젝트 #1

2019.06월에[고딩3] 졸업전시회를 하게 되었다. 나는 친구와 함께 2인 프로젝트를 진행했다. 주제는 오즈의 마법사 내용은 이렇다. 오즈가 모험을 나서면서 사자, 깡통, 허수아비를 만날 때마다 미니게임을 통해 해당 아이템을 주는 것이다. 즉 사자는 용기, 깡통은 사랑할 수 있는 마음, 심장 허수아비에게는 뇌를 주는 스토리로 기획하였다. 기능 구현 - 유니티 2d,3d 미니 게임 제작 - 캐릭터와 기념사진 촬영 및 이메일 전송 기능 구현 - 파이어베이스 연동하여 순위판 구현 게임 개발은 UNITY로 제작하였고, 첫 게임개발이라 부족한 점들,, 무엇보다도 기획이 어려웠다.. --- - 게임을 실행하기 위한 첫 화면이다. --게임 첫 화면이다. [플레이어명을 입력할 수 있다] -- 게임시작 캐릭터와 배경들..

프로젝트 2021.02.28

JPA DDL

JPA에서는 DB 테이블을 자동으로 만들어주는 기능이 있다. 우리가 user와, team으로 구성하게 된다면 team에는 user 여러명이 속할 수 있지만, user에는 사람 하나당 하나의 team에만 속할 수 있다. 이 조인을 해주는 곳은 userVo는 ManyToOne teamVo는 OneToMany를 볼 수 있다. 그다음에 application.yml파일에 아래 jpa: generate-ddl: true hibernate: ddl-auto: create generate-ddl : true hibernate.ddl-auto :create 후에 코드를 실행을 하게되면 아래와 같이 테이블이 만들어 진 것을 확인 할 수 있다. generate-ddl : 서버 시작 때 DDL문을 생성의 여부 hibernat..

DB/JPA 2021.02.17

Nginx 다중 포트 연결

Nginx를 활용하서 리액트 배포하기로 했다. 현재 Nginx로 다른 한 서비스가 운영되고 있는 상태이고, 거기다 추가적으로 하나를 더 올릴려고 한다. 먼저 나는 AWS-EC2[Linux] 환경에서 미리 기본적으로 깔려진 Nginx을 사용하였다. Nginx의 위치는 /etc/nginx 로 되어있다. nginx에 여러 포트를 설정해주기 위해 주 설정파일은 nginx.conf파일이다. 이 곳에다가 서버 포트설정을 올려주면 된다. 나는 직접적으로 코드를 넣어주는 방식보다, 하나의 디렉토리를 생성하여 import 시켜주는 방식으로 하였다. 1. /etc/nginx 이동 2. mkdir sites-enabled 3. vi testServer.conf server { # 1차 라우팅 listen 1234; # 포트..

인프라 2021.01.17

Jenkins를 이용한 서버 배포

MSA구조를 도입하게 되면서, 여러 서버들을 간편하고 쉽게 배포하기 위해 이번엔 AWS의 code pipeline 대신 jenkins의 빌드를 사용해 배포했다. 배포하고 싶은 api 서버는 - gradle - spring boot 로 구성되어있다. 즉 boot 프로젝트의 jar 파일을 ec2 리눅스 서버에다가 풀어 실행하려 한다. 1. Jenkins 관리 2. 플러그인 관리 - Github - Github Branch Source - Gradle Plugin - GitHub Integration Plugin 를 설치해주었다. 이제 서버를 배포하기 위한 새로운 아이템을 만들어 보도록 하겠다. 왼쪽 하단에 위치한 새로운 item으로 들어간다. 지정해주고 싶은 서버의 이름을 입력하고, FreeStyle pro..

인프라 2021.01.17

mybatis configuration location 설정

- mybatis sql을 작성하다가, 에 vo로 받아오기 위해, 설정을 해주지 않는 이상 우리는 vo가 있는 위치를 일일이 표기하기 어려워 찾아보았다. mybatis-config 설정파일을 해주기 위해서는, sessionFactory.setConfigLocation(resolver.getResource("mybatis config 경로 " ));를 추가해주면 된다. @Bean(name="sqlSessionFactory") public SqlSessionFactory sqlSessionFactory(@Qualifier("testServiceDataSource") DataSource dataSource) throws Exception { final SqlSessionFactoryBean sessionFac..

DB 2020.12.16

PSCP 이용하여 AWS/EC2 파일 전송 및 폴더 전송하기

로컬에서 EC2로 파일이나 폴더를 전송할때 Filezila등을 사용하거나 PUTTY를 이용하여 전송해도된다. putty를 설치하면 pscp.exe도 함께 설치가 되는데 이는 윈도우에서 ec2로 전송을 지원해준다. 파일 전송 pscp -i [.ppk 인증키] [이동할 파일 위치] [사용자명]@[퍼블릭 IPv4 DNS]:[파일 이동할 경로] 폴더 전송 pscp -r -i [.ppk 인증키] [이동할 파일 위치] [사용자명]@[퍼블릭 IPv4 DNS]:[파일 이동할 경로] -r : 디렉토리 복사할때 사용 -i : ppk 파일을 지정해서 사용할때 -p : 포트를 이용할때 이렇게 될경우 100%가 뜨면 ec2에 전송된 경우를 볼수있다. 하지만 ec2의 폴더 권한이 root로 되어있거나 수정, 삽입 권한이 없을때는..

인프라 2020.10.12
728x90
반응형