developer501의 등록된 링크

키자드에 등록된 총 159개의 포스트를 확인하실 수 있습니다.

Naver Blog

ManagementCurriculumDao

package com.myspring.gachon.admin.curriculum.dao; import java.util.List; import net.sf.json.JSO...

Naver Blog

ManagementCurriculumDaoImpl

package com.myspring.gachon.admin.curriculum.dao; import java.util.List; import org.apache.ibatis.m...

Naver Blog

ManagementCurriculumService

package com.myspring.gachon.admin.curriculum.service; import java.util.List; import net.sf.json.J...

Naver Blog

ManagementCurriculumServiceImpl

package com.myspring.gachon.admin.curriculum.service; import java.util.List; import net.sf.json.J...

Naver Blog

ManagementCurriculumVO

package com.myspring.gachon.admin.curriculum.vo; import org.apache.ibatis.type.Alias; @Alias(value...

Naver Blog

AdminCurriculumXml(Mapper)

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//ibatis.a...

Naver Blog

ManagementCurriculumController

package com.myspring.gachon.admin.curriculum.controller; import javax.servlet.http.HttpServletReq...

Naver Blog

MovieChartController

package com.myspring.standard.web.movie.movieChart; import java.util.List; import org.springframew...

Naver Blog

MovieChartDAO

package com.myspring.standard.web.movie.movieChart; import java.util.List; import org.apache.ibati...

Naver Blog

MovieChartService

package com.myspring.standard.web.movie.movieChart; import java.util.List; import javax.servlet.ht...

Naver Blog

Ajax 기본형

// Ajax 기본형1 function selectYearMst(s_year) {  var schoolYear = s_year; var dataForm = {  majo...

Naver Blog

Type분기문 예제

function yearType(type) {  if (type == "All") {  inputTextInit("#MST"); selectYearMst(); }  el...

Naver Blog

페이지 url로 parameter 넘기기

// 다음페이지 url로 ? 이후에 값 넘기기 function detailBtnClick(pieceNum){  var pieceNumber = piec...

Naver Blog

selected class 삽입, 삭제

<!-- 좌석선택의 인원수 선택 구분 --> <Script> $(function() {  $(".adult li").click(funct...

Naver Blog

Modal hide and show

<!-- modal show / hide --> <script> function showModal(modalId){  $('#'+modalId).modal...

Naver Blog

6. 클래스

6.10.1 정적멤버, static (= 클래스멤버) * 정적멤버 : 클래스 고정 멤버, 객체 생성안하고 사용 가...

Naver Blog

7. 상속

7.1 상속(Inheritance) : 부모클래스의 멤버를 자식 클래스에 물려 주는 행위 * 부모클래스 (= 상위...

Naver Blog

8. 인터페이스

8.1 인터페이스의 역할 : 개발코드와 객체가 통신하는 접점에서 객체의 사용방법을 정의 * 개발코드 - 인터...

Naver Blog

자바 스터디 1주차 키워드

1. String 문자열 비교 (값 비교 vs. 주소값 비교) - 아래 소스는 static final 에 대한 예제포함 2. 배열...

Naver Blog

2019.11.06 (수) 개발일지

오늘부턴 개발일지를 자기전에 작성하고 자기로 결정했다 (30분 이내) 뭔가 그날그날 공부 한 것들이 머릿...

Naver Blog

2019.11.12(월) 개발일지

오늘은 뭔가 색다른 시간을 가졌다 일단 node.js를 설치했고, npm이란 것을 첨으로 써봤다 그리고 node를 ...

Naver Blog

2019.12.08(일) 개발일지 (todo list 예제 종료, Vue + Typescript를 이용한 새로운 프로젝트 시작)

이번에 사용될 technical range는 아래와 같다 1. Spring 2. Spring boot 3. Mybatis 4. SwaggerUI 5...

Naver Blog

입력단어의 가운데 글자 반환

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자...

Naver Blog

나누어 떨어지는 값 오름차순 정렬

array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solut...

Naver Blog

물품 지원이 가능한 부서의 수 구하기

S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요 금액을 조사했습...

Naver Blog

짝수, 홀수 여부 판단

정수 num이 짝수일 경우 Even을 반환하고 홀수인 경우 Odd를 반환하는 함수, solution을 완성해주세요. ...

Naver Blog

가장 작은 수를 제거한 배열

정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단...

Naver Blog

[todolist] Vue cli + vuetify

* 07/15 코드리뷰에 대한 수정사항입니다. 1. v-on:이벤트명 = "메소드명" 형태를 맞춰줘...

Naver Blog

[todolist] typescript + decorator

* 07/21 코드리뷰에 대한 수정사항입니다. 1. nextTick() 비동기로 처리되는 Javascript 특성 상, UI가...

Naver Blog

[todolist] DB, API 연동하기 (base-api 서버단)

* 07/28 코드리뷰에 대한 수정사항입니다. 1. restful api 규격에 관한 7가지 rules 수정사항 : api/adm...

Naver Blog

[todolist] DB, API 연동하기 (base-admin 프론트단)

* 07/28 코드리뷰에 대한 수정사항입니다. 6. id 값을 DB에서 auto-increment로 생성해야 한다 최초 개발...

Naver Blog

[todolist] DB, API 연동하기 (최종)

* 08/02 코드리뷰에 대한 수정사항입니다. 전체적인 문제점 → TodoPage.vue에서 TodoList.vue로 fi...

Naver Blog

[8/9 ~ 8/11] SUPER관리자와 일반관리자(사용자) 분리 및 권한부여 이슈

* 이슈제목 : SUPER관리자와 일반관리자(사용자) 분리 및 권한부여 * 진행일자 : 8/9 ~ 8/10 * 이슈메...

Naver Blog

vue에서 Vuex store의 사용자 정보 호출하기

Vuex 의 store를 사용하여 로그인한 사용자의 id, 이름, 권한 등을 가져와 화면단에서 사용할 수 있다 위 ...

Naver Blog

[Inflearn] 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 강의 [진행 계획 및 환경설정]

실제로 프로젝트 구축 단계에서 환경설정에 많은 노력이 들어가는 듯 하다 물론 스프링부트를 사용하기 때...

Naver Blog

[Inflearn] 스프링 부트와 JPA 활용1 - 도메인 분석 설계 [요구사항분석 / 도메인모델과 테이블 설계]

1. 요구사항 분석 2. 도메인 모델과 테이블 설계 [ 컬럼 타입에 관한 설명 ] 1과 *의 표시는 1:N의 표현으...

Naver Blog

[Inflearn] 스프링 부트와 JPA 활용1 - 도메인 분석 설계 [엔티티 클래스 개발]

엔티티 클래스 개발 예제에서는 설명을 쉽게하기 위해 엔티티 클래스에 Getter, Setter를 모두 열고, 최...

Naver Blog

[Inflearn] 스프링 부트와 JPA 활용1 - 도메인 분석 설계 [엔티티 설계시 주의점]

4. 엔티티 설계시 주의점 1) 모든 연관관계는 지연로딩으로 설정해라 (매우중요) - 즉시로딩(EAGER)는...

Naver Blog

[Inflearn] 스프링 부트와 JPA 활용1 - 애플리케이션 아키텍쳐

애플리케이션 아키텍쳐 계층형 구조 사용 - controller, web: 웹 계층 - service: 비즈니스 로직, 트랜잭션...

Naver Blog

[Inflearn] 스프링 부트와 JPA 활용1 - 회원 도메인 개발

1. 회원 리포지토리 개발 2. 회원 서비스 개발 * 주입 방법 3가지 1) Autowired 테스트를 하거나 할 때 pr...

Naver Blog

[Inflearn] 스프링 부트와 JPA 활용1 - 상품 도메인 개발

1. 비지니스 로직 추가 - 엔티티 안에서 해결 할 수 있는 것에 대해서는 해당 엔티티 내에 비지니스 로직이...

Naver Blog

Intellij 단축키 (2021.08.23 기준)

ctrl + space : basic code complition(the name of any class, method or variable) ctrl + shift + space...

Naver Blog

[Inflearn] 스프링 부트와 JPA 활용1 - 주문 도메인 개발[주문, 주문상품 엔티티 개발]

주문, 주문상품에 대한 엔티티를 개발 해 보자 여기서는 [생성 메서드, 비지니스 로직, 조회로직]으로 나누...

Naver Blog

[Inflearn] 스프링 부트와 JPA 활용1 - 주문 도메인 개발[주문 리포지토리 개발]

삽질 노트

Naver Blog

[Inflearn] 스프링 부트와 JPA 활용1 - 주문 도메인 개발[주문 서비스 개발]

이번엔 지난 포스팅에서 만든 Order 엔티티와 OrderItem 엔티티를 이용 하는 주문 서비스(OrderServic...

Naver Blog

[Inflearn] 스프링 부트와 JPA 활용1 - 주문 도메인 개발[주문 기능 테스트]

주문 서비스 개발에 대한 테스트 코드를 작성하여, 정상적으로 수행되는지 확인 해 보자 OrderService.ja...

Naver Blog

[설계/리뷰] App / AppVersion 도메인 설계

이번에 Base쪽에 App / AppVersion 도메인 설계와 구현을 담당하게 됐다 해당 서비스는 App에 대한 정...

Naver Blog

[9/23 ~ 10/08] 앱 관리, 앱 버전관리 메뉴 설계 및 개발

* 이슈제목 : 앱 관리, 앱 버전관리 메뉴 설계 및 개발 * 진행일자 : 9/23 ~ 10/08 * 이슈메뉴 : 관리자 - ...

Naver Blog

[Inflearn] 스프링 부트와 JPA 활용1 - 주문 도메인 개발[주문 검색 기능 개발]

주문 검색 기능을 개발 해 보자 검색할 조건은 상태값과 주문명 2가지 이다 이번 포스팅에서는 동적 SQL...

Naver Blog

[Inflearn] 웹 계층 개발 [회원 등록]

웹 계층에 대해서는 thyme-leaf를 사용하는데, 크게 주요하게 다룰 내용은 아니라 그냥 소스로 대체한다 다...

Naver Blog

[Inflearn] 웹 계층 개발 [상품 등록]

1. ItemController.java 2. BookForm.java [실행 결과]

Naver Blog

[Inflearn] 웹 계층 개발 [상품 수정]

1. 수정 Form 호출 + model을 이용해 기존 데이터 불러오기 [설명] 수정하고자 하는 상품의 id를 가져와 f...

Naver Blog

[Inflearn] 웹 계층 개발 [중요! 변경 감지와 병합(merge)]

1. Merge에 대하여 위와 같이 item.getId가 있는 경우 MERGE하게 되는데, merge에 대해서 자세히 알...

Naver Blog

[Inflearn] 웹 계층 개발 [상품 주문]

1. 상품 주문 화면 (회원, 상품이 등록되어 있을 때, 특정 회원이 상품을 주문하는 화면) 2. 상품 주문 .or...

Naver Blog

[Inflearn] 웹 계층 개발 [주문 목록 검색, 취소]

1. 주문 목록 검색 2. 주문 목록 취소

Naver Blog

URI Convention

기본적으로 restful 한 uri 생성 규칙을 이용해서 작업하고 있다 기본적인 REST Resource Naming Gu...

Naver Blog

v-model로 넘기는 데이터가 숫자형이라면 .number를 붙여 표현하자

위와 같이 v-model로 넘기는 데이터가 숫자형이라면, 아래와 같이 .number를 붙여서 표현하자

Naver Blog

AWS 배포자동화 실제로 구축하기⑤ - ECR 이미지 태그 변경 + Task-Definition.json 생성하기

현재까지 구축한 Github Actions와 ECR, ECS 간에는 몇가지 문제점이 있다 문제점 ①. 새로운 PUSH 명령에 따라, ECR에 업로드 되는 이미지 태그명이 이상하다 2번째 untagged는 원래 latest였다. 하지만 새로운 이미지가 같은 naming(latest) 으로 들어오는 바람에 untagged로 자동 변경 되었다. 기존 deployment.yml 의 이미지 태그명을 latest로 하드코딩 했기에 발생한 현상이다 문제점 ②. 새로운 PUSH 명령에 따라, ECS에 의해 EC2에 배포가 자동으로 되지 않는다 아래와 같이 index.html을 수정하고 커밋/푸시 하고, 실제 반영이 됐는지 확인 해 보자 <body> 영역의 <p> 태그 내용이 반영되지 않았다는 것을 알 수 있다 이제.......

Naver Blog

AWS 배포자동화 실제로 구축하기⑥ - 도메인 Route53 등록 및 ELB 연결하기

우선 아래 네트워크 아키텍처를 살펴보면, internet 브라우저를 통해 들어온 접근에 대해 ELB가 받아 연결된 라우팅 테이블을 통해 EC2에 요청을 보낸다 즉, 우리는 ELB가 가장 앞단에서 요청을 받는 구조이다 이전 포스팅에서 배포 테스트를 할때 아래와 같이 브라우저에 LB의 DNS를 치고 들어갔었다 이제 무료 도메인을 발급받고 Route 53에 등록하고 ELB 에 연결해서, 도메인으로 접속 해 보겠다 1. 무료 도메인 발급받기 https://www.freenom.com/ 에 접속한다 > 우측 상단의 Sign in을 클릭하고 > 아래 Use social sign in 으로 진행한다 로그인 후 [Services > Register a New Domain] 을 클릭한다 사용하고 싶은 도메인을 check .......

Naver Blog

AWS 배포자동화 실제로 구축하기⑦ - ACM SSL 인증서 발급 및 HTTPS 리다이렉션

아래 스크린샷을 보면 동일한 도메인이지만 https 접근은 차단되었고, http 접근은 정상적으로 노출되고 있다 http와 https에 대한 차이점, 구조, 동작원리는 잘 정리된 포스팅이 있어 링크 남긴다 우리는 https 접근을 위해 우선 ACM (AWS Certificate Manager)로 SSL 인증서를 발급받고, 로드 밸런서의 리스너를 적절히 수정해서 http → https로 리다이렉션하여 안전하게 https 페이지를 호출하도록 하는 작업을 할 예정이다 1. ACM을 통해 SSL 인증서 발급받기 [AWS Certificate Manager 콘솔 > 인증서 요청] 을 선택한다 도메인 이름에는 [*.ceaserdemo.ml] 과 [ceaserdemo.ml]을 입력한다 같은 도메인 내 여러 사이트 보호할 수 있도록.......

Naver Blog

AWS 배포자동화 실제로 구축하기 - CloudFront의 이해

이 [배포자동화 실제로 구축하기 시리즈] 의 처음 아키텍처 포스팅에서 프론트앤드는 아래와 같이 S3 에 업로드 된 vue 소스를 불러와 Route53과 연결짓는다 하지만, 여기서 한 단계 더나아가 CloudFront를 이용해서 웹 페이지 배포하는 작업을 하고자 한다 CloudFront가 무엇이고 사용하는 이유에 대해서는, 예전 AWS 사용중인 서비스 간단정리 포스팅에서 잠시 언급한 적이 있었다 이번 게시물에서도 짧게 복습하고, 다음 포스팅에서 실제로 Vue.js 웹 페이지를 S3에 직접 접근하는 것과 CloudFront 캐싱을 통해 접근 하는 것에 차이가 있는지 확인 할 것이다 1. CloudFront 란? CloudFront는 AWS에서 사용하는 강력한 CDN (Contents Delivery .......

Naver Blog

AWS 배포자동화 실제로 구축하기⑧ - S3 + CloudFront로 Vue.js 정적 웹 페이지 배포하기

지난 포스팅에서 CloudFront에 대해서 알아봤다 이제 이 시리즈의 마지막으로, CloudFront를 이용 해 Vue.js 정적 웹 페이지를 배포 해 보겠다 (앞서 생성했던 도메인과 연결해서, 실제 서비스 구축을 연상케 하도록 할 예정!) 추가로 간단한 이미지를 업로드 하고, S3에 직접 접근했을 때와 CloudFront를 통해 접근했을 때를 비교 해 보자 1. S3 버킷 생성하기 우리는 기존에 S3 버킷을 생성하고, 키 값을 보관하는 작업을 했었다 (참고) 동일하게 생성하되, 이번엔 액세스 권한과 객체 소유권에 대해서 조금 더 자세히 알아보자 아래와 같이 입력하고 생성한다 모든 퍼블릭 액세스 차단에 체크를 해도 CloudFront에서 접근이 되지만, 우리는 S3.......

Naver Blog

AWS 배포자동화 실제로 구축하기 - 마무리 하며

총 12개의 포스팅을 끝으로 [AWS 배포자동화 실제로 구축하기] 시리즈를 마무리 한다 사실 우연한 계기로 AWS 배포 자동화 구축을 담당하게 되었고, 관련 지식이 1도 없는 상태에서 너무나 막막했었다 지금 생각해보면 정말 잘되어 있는 AWS Docs도 있고, 구글에는 국내외 훌륭한 선배 개발자들이 올려놓은 포스팅과 stack overflow가 있는데 무엇이 그렇게 겁이 났을까 싶다 물론 AWS가 제공하는 정말 많은 옵션이 있고, 아키텍처는 정답이 없기 때문에 쉽지만은 않았다 때로는 내가 하고 있는게 이게 맞는건가? 망망대해를 떠도는 기분이 들 때도 있었다 내용이 스킵된 자료들도 많았고, 스킵한 옵션들로 인해 전체 리소스를 삭제하고 다시 만.......

Naver Blog

[Efficiency] 최대 매출 구하기 (Sliding Window)

설명 현수의 아빠는 제과점을 운영합니다. 현수 아빠는 현수에게 N일 동안의 매출기록을 주고 연속된 K일 동안의 최대 매출액이 얼마인지 구하라고 했습니다. 만약 N=10이고 10일 간의 매출기록이 아래와 같습니다. 이때 K=3이면 12 15 11 20 2510 20 19 13 15 연속된 3일간의 최대 매출액은 11+20+25=56만원입니다. 여러분이 현수를 도와주세요. 입력 첫 줄에 N(5<=N<=100,000)과 K(2<=K<=N)가 주어집니다. 두 번째 줄에 N개의 숫자열이 주어집니다. 각 숫자는 500이하의 음이 아닌 정수입니다. 출력 첫 줄에 최대 매출액을 출력합니다. 예시 입력 1 예시 출력 1 이중 for문으로도 해결 할 수 있.......

Naver Blog

[Efficiency] 연속 부분수열

설명 N개의 수로 이루어진 수열이 주어집니다. 이 수열에서 연속부분수열의 합이 특정숫자 M이 되는 경우가 몇 번 있는지 구하는 프로그램을 작성하세요. 만약 N=8, M=6이고 수열이 다음과 같다면 1 2 1 3 1 1 1 2 합이 6이 되는 연속부분수열은 {2, 1, 3}, {1, 3, 1, 1}, {3, 1, 1, 1}로 총 3가지입니다. 입력 첫째 줄에 N(1≤N≤100,000), M(1≤M≤100,000,000)이 주어진다. 수열의 원소값은 1,000을 넘지 않는 자연수이다. 출력 첫째 줄에 경우의 수를 출력한다. 예시 입력 1 예시 출력 1 쉽게 떠올릴 수 있는 이중 for문의 경우 O(n^2)의 방식이 있지만, 입력에서 N과 M의 값이 충분히 크기 때문에 이럴때는 O(n) 으로 해결 해야 한.......

Naver Blog

[AWS Builders] IAM 정책과 역할(3) - IAM역할(Role)

이상하게 글을 올리고 이미지가 사라졌다.......ㅜㅜ 이미 실습 후에 비용이 나갈 수 있어 자원을 다 삭제한 상태인데 ㅠㅠㅠ 그냥 개인적인 참고사항으로만 볼 용도의 포스팅이므로 IAM에 관해서는 추후 다시 업로드 하던지 해야겠다 해당 포스팅은 AWS Builders Korea Program 세미나의 "보안의 기본! 최소권한 원칙을 위한 IAM 이해하기"에 대한 발표 자료와 강의를 토대로 작성되었습니다 (관련 자료의 사용을 허가 받았습니다) 이번 포스팅에서는 권한을 부여하는 가장 안전한 방법인 Role과 부여받은 역할에 대한 역할 전환에 대해 알아본다 IAM 역할 (ROLE) 앞서 알아온 정책과 IAM자격증명과 마찬가지로 역할(Role) 역시 권한.......

Naver Blog

AWS 배포자동화 실제로 구축하기 - 아키텍처

이번 포스팅부터는 그동안 공부했던 것들을 토대로 github / gitlab 같은 형상관리 툴을 이용해서, AWS에 자동으로 배포되도록 파이프라인을 구축해 보고자 한다 (총 12회 분량) 실제 구축 사례를 포스팅으로 남기는 이유는 이렇다 이런 이유로 이번 시리즈는 굉장히 자세하게 배경지식과 캡처를 포함해서 작성하려고 한다 스압의 부담감에 뒤로가기를 누르기보다는 찬찬히 따라하며 읽어보면, 어느새 성공적인 인프라 구축이 가능할 것이라 생각한다 (화이팅!... 사실 나에게 하는 말임) 개인적으로 구상한 아키텍처는 아래와 같다. 툴은 Draw.io를 사용했다 (직접 구성한 구성도라 잘못된 점이 있다면, 말씀 부탁드립니다) 이하 포스팅은 각 파.......

Naver Blog

AWS 배포자동화 실제로 구축하기① - 네트워크 구축하기

회사마다, 아키를 구성하는 사람마다 naming rule은 다른 것 같다 보통 [리소스명-프로젝트 이름-스테이징 서버]의 형태로 네이밍을 하는 듯 하다 여기서는 demo라는 프로젝트에 별도 스테이징 서버는 없으므로, 가급적 [리소스명]을 앞에 두는 것으로 하겠다 1. VPC 생성하기 [VPC 콘솔] 에서 VPC를 생성한다 VPC가 생성됐다 2. Subnet 생성하기 그럼 이제 2개의 Available Zone (a/b)에 각각 1개의 public subnet과 private subnet을 구성하자 위와 같이 총 4개의 서브넷을 생성한다 반드시, vpc는 앞서 생성한 vpc를 설정 해야한다 서브넷 4개가 생성됐다 3. 라우팅 테이블 생성하기 기본적으로 VPC를 생성하면서 1개의 라우팅 테이블이 생성.......

Naver Blog

AWS 배포자동화 실제로 구축하기② - ECR 생성하기

이번 포스팅에서는 private ECR을 생성하고, EC2를 생성하여 docker 환경을 구축한 뒤, 실제 생성한 ECR에 붙어 이미지를 업로드 하는 것까지 구축한다 생성했던 EC2 자원과 docker 컨테이너는 삭제한다 (어차피 ECS 생성 할 때, EC2는 오토스케일링 그룹과 함께 자연적으로 생성되므로 더이상 필요 없다) 1. ECR 테스트용 EC2 생성하기 테스트용 EC2기 때문에 프리티어에서 이용할 수 있는 t2.micro 작은 크기의 EC2를 하나 띄운다 인스턴스 구성은 기존에 생성한 [VPC (Demo-VPC)]를 선택하고, 서브넷은 [public-subnet-2a]를 선택한다 IP자동할당은 [활성화]를 선택한다 SSH 접근을 위한 22번 포트와, 기존에 생성했던 보안그룹 (ecs-ec2-demo.......

Naver Blog

AWS 배포자동화 실제로 구축하기 - S3 생성하고, 키 값 보관하기

앞선 포스팅을 통해 네트워크를 구성하고, EC2를 통해 ECR에 도커라이즈 한 이미지 파일을 업로드까지 해보았다 이번 포스팅은 쉬어가는 타임으로, 기존에 생성했던 각종 키 들을 s3에 보관하는 실습을 하겠다 이전 작업 과정에서 aws 배포용 IAM 계정 (deployer)의 액세스/시크릿 키와 EC2 pem키가 생겼다 물론 개인 pc에서 조심히 관리할 수 있겠지만, 팀프로젝트의 경우 이런 파일들은 공유 리소스에서 private하게 관리되는 것이 좋다 S3 버킷을 private하게 생성하고, 해당 위치에서 파일들을 보관 해 보자 나중에 S3는 vue 화면단 소스의 배포용 버킷으로도 사용되므로, 미리 생성해두어도 좋다 기본적으로 S3의 정책은, ALL DENY다 이 버.......

Naver Blog

AWS 배포자동화 실제로 구축하기③ - Github Actions + ECR

이번 포스팅에서는 실제 개발자가 github에 개발 소스를 push 했을 때, Github Actions를 사용하여 Docker 이미지를 빌드하고 AWS ECR (Elastic Container Registry) 에 푸시하는 방법에 대해 다룬다 대상 ECR은 앞서 생성한 ECR (AWS 배포자동화 실제로 구축하기(2) - ECR 생성하기) 을 사용한다 웹서버는 nginx를 이용하며, 도커파일을 참고하면 된다 간단히 오늘 해 볼 프로세스는 아래와 같다 Github ACtions가 push 명령이 on 되면, test와 formatting, code analysis를 진행하고, 순차적으로 build와 push 명령에 따라 ECR에 도커이미지를 publish 하게 된다 1. Github Demo Repository 생성 아래와 같이 Github에 Demo Repository를 하나.......

Naver Blog

AWS 배포자동화 실제로 구축하기④ - ECS, ELB, EC2 인스턴스 생성하기

이제 ECS를 생성하고, 앞서 ECR에 올린 이미지를 pull 하여 배포할 차례이다 이번 포스팅에서는 클러스터(ECS Cluster), 서비스(Service), 작업명세 (Task Definition)를 생성하고, ELB를 생성한 뒤 연결한다 기본적으로 ECS의 배포는 최소 2개 이상의 인스턴스를 연결하는 것이 권고사항이므로, 이번 인프라 구축에서도 EC2 2개를 생성하고, Auto Scaling Group으로 묶는다 1. EC2 인스턴스 SSH 접근을 위한 키페어 생성 [EC2 콘솔 > 네트워크 및 보안 > 키페어] 에서 [ec2-demo] 키페어를 생성하자 2. ECS 클러스터 생성 [ECS 콘솔 > 클러스터 > 클러스터 생성] 으로 이동한다 두번째 EC2 Linux + 네트워킹을 선택한다 아래와 같이.......

Naver Blog

AWS 배포자동화 실제로 구축하기 - 인스턴스 유형 별 가용영역 확인 이슈

ECS 작업을 하던 와중에 정상적으로 작업정의, 서비스, 클러스터를 구성했음에도 PENDING > STOPPED 상태로 넘어가는 이슈를 만나게 됐다 이상하다.. 하면서 찾아보며 이것저것을 둘러보던 중, Auto Scaling Group 에 아래와 같은 Failed 메시지를 발견했다 설명은 아래와 같다 내가 설정한 서브넷의 가용영역은 ap-northeast-2a / 2b 인데, 내가 설정한 instance의 유형 t2.medium은 supported 되지 않는다는 내용이었다... 확인 해 보니, 2a와 2c에서만 지원하네요 하하.. 아놔 ㅠㅠ 다되는거 아니었군... [EC2콘솔 > 인스턴스 유형] 으로 이동해서 2a, 2b에 해당하는 가장 작은 사이즈의 유형을 확인하고 다시 구축해야하겠다 사실 프리.......

Naver Blog

[AWS Builders] 1일차 종료 주저리 주저리

AWS 세미나에 대한 1차 기초 실습을 끝마쳤다.. 기본적인 내용들이라 사실 금방 금방 적용할 수 있었지만, 일부 놓치고 있던 옵션들이나 팁들을 알 수 있어 좋았다 아래 포스팅들은 똑같이 따라하면 100% 되도록, 실습한 내용을 캡처 했다 관련 자원들을 모두 날렸기 때문에 보안상의 이슈도 없을 듯 해서 전체공개로 돌렸다 이번 세미나에서는 필요하다 느끼는 3일차 까지만 신청했다 끝까지 완강해서 좋은 경험과 지식이 되었으면 좋겠다 굿빰!

Naver Blog

[AWS Builders] AWS Basic Networking Design 알아보기 - VPC EndPoint

해당 포스팅은 AWS Builders Korea Program 세미나의 AWS Basic Networking Design에 대한 발표 자료와 강의를 토대로 작성되었습니다 (관련 자료의 사용을 허가 받았습니다) 1~4 까지는 앞선 포스팅에서 다뤘던 AWS 네트워크 구성에 대한 내용이므로 빠르게 지나간다 VPC EndPoint는 5번부터 시작이다 (내용만 확인하고 싶다면 빠르게 체크하면 된다) 1. VPC 생성하기 아래와 같이 단일 public subnet 1개만을 갖는 VPC를 생성 해 보자 AZ는 2a 1개로 두고, private subnet 은 없다 구성을 완료하면 아래와 같은 아키텍처 상태가 된다 2. 서브넷 추가하기 AZ 2c 영역에 서브넷을 하나 추가한다 (서브넷 추가는 이전 포스팅 네트워크 구성에서 자.......

Naver Blog

[AWS Builders] AWS Basic Networking Design 알아보기 - VPC Peering

해당 포스팅은 AWS Builders Korea Program 세미나의 AWS Basic Networking Design에 대한 발표 자료와 강의를 토대로 작성되었습니다 (관련 자료의 사용을 허가 받았습니다) AWS 네트워크 구성은 지난 VPC EndPoint 포스팅을 참고 해 구축 해 보면 된다 해당 포스팅에서는 VPC Peering 에 대해서만 다룬다 VPC Peering 으로 양방향 통신하기 서로다른 VPC의 자원을 필요로 할때 2가지 방법! 1) Internet Gateway : 서로다른 VPC가 인터넷을 통해 자원을 주고 받을 수는 있으나, 통신 속도나 보안면에서 이슈가 있을 수 있고, private zone의 자원은 참조 할 수 없다 2) VPC Peering : 별도의 물리적 장비는 아니고 논리적 장비 개념이라 별도 대.......

Naver Blog

[AWS Builders] AWS Basic Networking Design 알아보기 - 네트워크 개론, 다양한 게이트웨이, 추가 서비스

해당 포스팅은 AWS Builders Korea Program 세미나의 AWS Basic Networking Design에 대한 발표 자료와 강의를 토대로 작성되었습니다 (관련 자료의 사용을 허가 받았습니다) 기본적인 VPC에 대한 설명은 앞선 포스팅에서 많이 다루었기 때문에, 개인적으로 수강하며 추가적으로 알게 된 사항에 대해서만 정리한다 1. VPC의 개요 VPC 내의 모든 EC2 인스턴스 들은 사설 IP가 부여되는데, 사설 IP는 물리적인 케이블, 와이파이 등을 통해 연결된 네트워크 망에서 인터넷을 타고 외부로 나갈 때 사용하는 것이 아니라 내부적인 용도로만 사용하는 IP다 반대도 공인 IP는 인터넷을 사용하고 외부로 나갈 수 있는 IP이다 BYOIP를 이용해 현재 사용하.......

Naver Blog

[AWS Builders] AWS EC2를 이용한 Immutable Infrastructure 구성하기 - Route53, ALB

해당 포스팅은 AWS Builders Korea Program 세미나의 EC2를 이용한 Immutable Infrastructure 구성에 대한 발표 자료와 강의를 토대로 작성되었습니다 (관련 자료의 사용을 허가 받았습니다) - 목표 아키텍처 1. Network 구성 (수동으로 일일히 생성하진 않고, 만들어진 템플릿 환경을 이용할 예정) 1) Template 받기 a. CloudFormation Template ← Link 로 부터 download받기 (받아서 yml 파일로 바꾸어 저장!) b. Terminal을 사용한다면, 아래 command를 통해 다운로드 받기 이 파일을 열어보면, git으로부터 읽어와 cats, dogs, frontend를 배포하는 과정이 기술되어 있다 오늘 어떻게 ec2 가 프로비저닝 될때, git에서 불러와 배포하게 되는.......

Naver Blog

[AWS Builders] Mutable vs. Immutable

앞선 immutable structure 포스팅에서 계속 등장하는 용어인 "Immutable"이 뭘까? 그냥 쉽게 생각해서 이렇게 생각하면 된다 Mutable은 한번 설치 한 이후, 계속해서 그위에 변경을 하는 것 Immutable은 변경이 필요한 경우, 기존 인스턴스를 삭제하고 변경이 반영된 새로운 인스턴스를 실행하는 것 각각의 장단점은 아래와 같다 1. Mutable 장점 : 변경이 필요할때마다 반영하면 되므로 상대적으로 관리가 용이하다 단점 : 변경점 관리가 어렵고, 여러개 인스턴스를 동일한 상태로 관리하기가 어렵다 2. Immutable 장점 : 여러개의 인스턴스를 동일한 상태로 관리할 수 있다 단점 : 지속적으로 변경이 적용된 최신화 된 템플릿 관리가.......

Naver Blog

[AWS Builders] Linux / Windows 공유 파일 시스템 환경 구성하기 - Amazon FSx

해당 포스팅은 AWS Builders Korea Program 세미나의 워크로드에 적합한 스토리지 선택하기에 대한 발표 자료와 강의를 토대로 작성되었습니다 (관련 자료의 사용을 허가 받았습니다) 캡처 이미지가 스압이 있지만, 실제 내용은 별거 없다.. 찬찬히 읽어보며 따라 가 보자! (쫌매우신기 함...) - 목표 아키텍처 Amazon FSx for window 를 통하여 Linux 호스트와 Window 호스트에 공유 파일 시스템 환경을 구성한다 아래 아키텍처를 보고 목표를 이해 해 보자 a) 가용영역 a1과 c1에 각각 서브넷을 구성하고, Windows host ec2와 Linux host ec2를 생성한다 b) 이 두 ec2에 공유 파일 시스템 FSX를 구성하고, 여기에 접근할 수 있도록 Active Dire.......

Naver Blog

[AWS Builders] IAM 정책과 역할(1) - 사용자/사용자 그룹 생성

해당 포스팅은 AWS Builders Korea Program 세미나의 "보안의 기본! 최소권한 원칙을 위한 IAM 이해하기"에 대한 발표 자료와 강의를 토대로 작성되었습니다 (관련 자료의 사용을 허가 받았습니다) IAM 사용자 4명을 생성하고, 2개 그룹을 생성 한 후 권한을 제어하고 부여하는 실습을 하려고 한다 이번 포스팅은 기본이 되는 사용자와 그룹을 생성하는 사전 준비 과정만을 다룬다 1. IAM 사용자 (User) 생성 IAM 사용자 (User) 란 AWS Identity and Access Management(IAM) 사용자는 AWS에서 생성하는 엔터티로, 사람 또는 애플리케이션이라고 보면 된다 (이름 + 자격증명) 우선 아래 4명의 사용자를 추가한다 [IAM 콘솔] - [사용자 추.......

Naver Blog

[AWS Builders] IAM 정책과 역할(2) - IAM 정책(Policy)

해당 포스팅은 AWS Builders Korea Program 세미나의 "보안의 기본! 최소권한 원칙을 위한 IAM 이해하기"에 대한 발표 자료와 강의를 토대로 작성되었습니다 (관련 자료의 사용을 허가 받았습니다) 이번 포스팅에서는 앞서 생성한 사용자와 그룹을 이용 해, 6가지 타입의 정책 분류와 정책부여를 통한 권한관리에 대해 알아본다 IAM 정책 (Policy) 1. IAM 정책 분류 (6가지) IAM 정책은 크게 권한을 제한하는 용도의 가드레일 (Guardrail) 과 권한을 부여하는 용도(Grant)로 나뉜다 : 이번 포스팅에서 다루게 될 정책 * 권한을 부여하는 정책 (Grant) 1. 자격증명 기반 정책 (Identity-based policies) a. AWS 관리형 정책 (AWS Manage.......

Naver Blog

[AWS Builders] 클라우드 기초와 AWS클라우드 컴퓨팅

들어가기 전에 2022.03.29~31 까지 3일간 AWS 에서 제공하는 세미나에 참석한다 우선 첫 날 첫 타임은 전체적으로 개론의 내용이라 간략하게 정리했고, 사실 어떤 서비스가 있는가? 에 대해 훑고 지나가는 형태기 때문에 자세히 볼 내용은 없다 (현재 진행중인 AWS를 활용한 인프라 구축을 마무리 짓고 관련 내용을 정리할 것이므로 그걸 보는 게 나을 듯) 해당 포스팅은 AWS Builders Korea Program 세미나의 클라우드 기초와 AWS 클라우드 컴퓨팅에 대한 발표 자료와 강의를 토대로 작성되었습니다 (관련 자료의 사용을 허가 받았습니다) 모듈1. 클라우드 컴퓨팅 및 AWS 소개 1. 클라우드 컴퓨팅이란? 인터넷을 통해 클라우드 서비스 공급자로.......

Naver Blog

[AWS Builders] AWS 네트워크 구성하기 (VPC, Subnet, Routing Table, 보안그룹)

해당 포스팅은 AWS Builders Korea Program 세미나의 클라우드 기초와 AWS 클라우드 컴퓨팅에 대한 발표 자료와 강의를 토대로 작성되었습니다 (관련 자료의 사용을 허가 받았습니다) -. AWS 자원 레벨 각 Area 내에서 배포가 가능하다는 의미이다 ex. VPC는 하나의 리전에서 (리전레벨에서) 배포가 가능하다. a리전에서 배포된 VPC는 b리전에서 배포될 수 없다 -. 실습 아키텍처 - IAM에서 Administrator 계정을 만들어, 해당 계정으로 작업하는 것이 권장된다 (root 계정은 권장하지 않음) 1. VPC 생성하기 (+ 퍼블릭 서브넷 1개 추가하기) 사용자의 AWS 계정 전용 가상 네트워크, 이 네트워크 내에서는 AWS 리소스는 서로 통신 할 수 있다 Def.......

Naver Blog

[AWS Builders] CIDR 주소 범위 이해하기

해당 포스팅은 AWS Builders Korea Program 세미나의 클라우드 기초와 AWS 클라우드 컴퓨팅에 대한 발표 자료와 강의를 토대로 작성되었습니다 (관련 자료의 사용을 허가 받았습니다) : 아이피 주소들의 그룹 CIDR(Classless Inter-Domain Routing)은 네트워크의 주소와 크기를 표현하는 방식 중 하나이다. 앞선 실습에서 생성한 VPC는 16을 서브넷 값으로 하는 IP 주소 범위이다. 중요 한 건 / 다음의 숫자인데, 이 숫자는 아래 예에서 볼 수 있듯 각 자리 8비트 중에서 몇자리를 고정으로 보고, 몇자리를 가변 범위를 볼지를 결정하는 것이다 8자리.8자리.8자리.8자리 이므로, 앞에 16자리가 고정 범위라는 이야기고, 뒤에 16자리가 가변범위라.......

Naver Blog

[AWS Builders] AWS 웹 서버 생성하기 (EC2)

해당 포스팅은 AWS Builders Korea Program 세미나의 클라우드 기초와 AWS 클라우드 컴퓨팅에 대한 발표 자료와 강의를 토대로 작성되었습니다 (관련 자료의 사용을 허가 받았습니다) -. 웹서버 인스턴스 실습 아키텍처 이제 아래와 같이 본격적으로 네트워크 기반에 컴퓨터 머신 EC2 웹서버를 올리고자 한다 1. EC2 생성하기 EC2(Elastic Compute Cloud) 란, AWS 클라우드에서 확장 가능한 컴퓨팅 용량을 제공한다 * C2를 사용하면 아래와 같은 장점이 있다 - 하드웨어 선투자 필요성 없이 빠르게 애플리케이션을 개발하고 배포할 수 있다 - 원하는 만큼 가상 서버를 구축하고 보안/네트워크 구성과 스토리지 관리가 가능하다 - 갑작스러운 트래.......

Naver Blog

[AWS Builders] AWS 로드밸런서 구성하기 (ELB)

해당 포스팅은 AWS Builders Korea Program 세미나의 클라우드 기초와 AWS 클라우드 컴퓨팅에 대한 발표 자료와 강의를 토대로 작성되었습니다 (관련 자료의 사용을 허가 받았습니다) -. 실습 아키텍처 1. ELB (Elastic Load Balancing) 애플리케이션 트래픽을 Amazon EC2 인스턴스, 컨테이너, IP 주소, Lambda 함수, 가상 어플라이언스와 같은 여러 대상에 자동으로 분산시켜주는 AWS 리소스 ELB는 단일 가용영역 부터 여러 가용영역까지 다양한 애플리케이션 부하를 처리할 수 있다 하나의 서버에 장애가 있을 경우에도 서비스의 안정성을 보장 할 수 있다 (고가용성, 자동조정, 강력한 보안) 종류로는 아래 4가지가 있다 - Application Load B.......

Naver Blog

[AWS Builders] AWS 모니터링 (Amazon SNS, CloudWatch)

해당 포스팅은 AWS Builders Korea Program 세미나의 클라우드 기초와 AWS 클라우드 컴퓨팅에 대한 발표 자료와 강의를 토대로 작성되었습니다 (관련 자료의 사용을 허가 받았습니다) 1. Amazon SNS란 : 발행자에게서 구독자 (혹은 생산자에게서 소비자 라고도 함) 에게 메시지 전달 기능을 제공하는 관리 서비스 발행자는 비동기적으로 '토픽' 에 메시지를 전송하는 방법으로 구독자와 통신한다 (토픽은 논리적인 액세스 포인트와 소통 채널을 의미) 고객은 특정 SNS 토픽을 구독하면, 발행된 메시지를 지원하는 프로토콜을 통해 메시지를 받을 수 있다 이 프로토콜은 Amazon Kinesis Data Firehose, Amazon SQS, AWS Lambda, HTTP, e.......

Naver Blog

[AWS Builders] AWS 오토스케일링 (Auto Scaling)

해당 포스팅은 AWS Builders Korea Program 세미나의 클라우드 기초와 AWS 클라우드 컴퓨팅에 대한 발표 자료와 강의를 토대로 작성되었습니다 (관련 자료의 사용을 허가 받았습니다) -. 오토스케일링 실습 아키텍처 이제 아래와 같이 기존에 설계된 아키텍처에 오토스케일링 그룹을 생성하고, 실제 부하테스트를 통해 정상적으로 스케일 업/아웃이 이루어지는지 확인한다 1. 오토스케일링 (Auto Scaling의 개념) 애플리케이션의 로드를 처리 할 수 있는 정확한 수의 EC2 인스턴스를 보유 할 수 있도록, 유동적으로 Scale up/out을 하여 보장하는 개념 Auto Scaling Group 이라는 EC2 인스턴스 그룹을 생성하고, 최소~최대 인스턴스 수를 지정할.......

Naver Blog

[AWS Builders] AWS 정적 웹사이트 호스팅 (S3)

해당 포스팅은 AWS Builders Korea Program 세미나의 클라우드 기초와 AWS 클라우드 컴퓨팅에 대한 발표 자료와 강의를 토대로 작성되었습니다 (관련 자료의 사용을 허가 받았습니다) 1. Amazon S3란? : 한줄로 설명하면 AWS에서 제공하는 객체 스토리지 서비스로, 트래픽 증가에 따른 장비 증설이나 접근제어, 파일의 저장과 검색에 대한 서비스를 제공한다 S3에 대해 정리된 몇 가지 포스팅을 함께 첨부한다. S3를 왜 써야하고, 특징은 어떤 것이 있는지 잘 정리되어있다 * 두두네 클라우드 : https://datalibrary.tistory.com/185 * 생활코딩 : https://opentutorials.org/course/608/3006 2. S3 버킷 생성하기 바로 본론으로 들어가 보자 크.......

Naver Blog

다수 게시판에서 공유하는 페이징 넘버링 해결 방법 (feat, AtomicInteger)

1. 이슈 상황 [공지사항, FAQ, 이벤트] 게시판에서 동일한 DB 테이블을 보고 있고, 화면 상 [번호(No)] 컬럼이 필요 했다 대략 위와 같이 하나의 board 테이블에 type으로 데이터를 구분하고 있었다 2. 해결 방안에 대한 아이디어 1) DB로 해당 데이터의 노출 번호를 저장하여 관리한다 - 데이터가 삭제되고 추가된다면, id는 auto-increment 값이므로 1, 2, 3, 5, 8, ... 과 같이 이상한 데이터 배열이 만들어진다 (X) 2) 화면 단에서 처리 - 아래와 같이 [전체 개수 - 인덱스 - (페이지번호*각페이지당 게시글 갯수)] 와 같은 계산식을 만들어, 매 게시판마다 넣어줘야 한다 (가능은 한데, 이건 좀 불편하다..., X) 3) 서버 단에서 처리 - 하나.......

Naver Blog

데이터 존재 유무 확인 exists + 성능이슈

Spring JPA에서 데이터 존재 유무 확인을 위해 exists 를 사용 할 수 있다 이런 경우 JPA에서 제공하는 existsBy~ 메소드 쿼리를 사용 할 수 있다 하지만 조건문이 3개 이상인 경우, 또는 필드명이 길거나 조건문 자체가 복잡한 경우 표현이 어렵다는 단점이 있다 이때 @Query를 붙여, JPQL 형태로 작성하는데, select의 exists를 지원하지 않아 count를 사용하여 exists를 대체한다 콘솔에 위와 같은 query가 찍힌다 이 쿼리를 exists 문으로 바꾸면 대략 아래와 같다 이 두 쿼리는 같은 결과를 갖지만, 데이터 양이 많아졌을 경우 성능에서 큰 차이를 보인다 이유는 exists는 첫번째 결과에서 바로 true를 리턴하지만, count의 경우는 총 몇건.......

Naver Blog

[11/15 ~ 12/01] 약관 메뉴 설계 및 개발

1. 리스트 - 이용약관 동의 / 개인정보 수신 및 이용 동의 / 프로모션 정보 수신 동의 / 위치정보 이용약관 동의 4가지를 enum으로 정의해서 사용 - 서비스도 당장은 관리 테이블이 없으므로 CUBEWIZ enum 으로 정의해서 사용 - 기본 리스트 조회, row 삭제, 엑셀다운로드, 필터, 페이징 제공 2. 등록 / 수정 - 약관 이름, 타입, 개정일자, 필수동의 여부, 설명, 사용여부 등록 - 필수동의는 약관 동의 시 validation check 에 사용 (필수/선택) - 개정일자는 datepicker 사용 3. 약관보기 및 동의 - 약관 동의를 필수로 받아야 하는 항목에 유효성 검사 체크 (반대는 그냥 패스) - 약관 동의에 [필수]/[선택] 표시 - 전체선택 / 개별선택 체크박.......

Naver Blog

undefined, null 방지 간단 피드백 (NPE)

이 내용은 동료 개발자의 코드리뷰에서 가져온 내용임을 밝힌다 || "" 를 사용 한 것은 null 또는 undefined을 방지 하기 위함으로 해석된다 위와 같은 상황에선 itemText?.toLowerCase() 또는 (itemText || "").toLowerCase() 와 같이 사용하는 것이 더 좋은 방법이다 ?. 는 undefined이 올 수 있음을 의미한다

Naver Blog

save vs. saveAll 의 퍼포먼스 차이

최근 약관관리 도메인을 개발하던 중, [약관 동의] 처리를 일괄로 해야하는 케이스가 발생했다 아래와 같이 다수개 체크박스를 선택하여 동의처리를 하는 상황이었다 우선 처음 작성한 코드는 아래와 같다 이 소스를 아래와 같이 변경 했다 차이를 살펴보자 우선 첫번째 소스는 foreach를 돌리며 termsAdminMapRepository에 하나하나 save()를 날리고 있다 두번째 소스는 .toList()로 리스트 형태로 만든 다음, saveAll()을 하고 있다 콘솔에는 동일하게 save 가 찍히고, 동작에도 큰 문제는 없다 사실 그렇게 대량의 데이터가 아닌 고작 4건의 데이터일 뿐이기에 더욱이 문제 상황은 발생하지 않을 것이다, 그렇지만 두번째 방식이 올바른 방향.......

Naver Blog

AWS 사용 중인 서비스 간단 정리

현재 회사에서 사용중인 AWS 자원에 대해 간단히 정리하고자 한다 전체적인 사용중인 서비스 항목은 아래 이미지에서 확인 할 수 있다 1. EC2 기본적으로 한대의 컴퓨터라고 생각하면 간단하다 1) 인스턴스 각각 서버를 EC2에 세팅하고 퍼블릭 IPv4 주소를 할당한다 (현재 prod/qa/sandbox 3대 사용중) 퍼블릭 IPv4는 매번 바뀌기 때문에, 탄력적(Elastic IP)를 할당하여 고정 IP로 사용한다 각각의 인스턴스에 대해 시작/재시작/중지를 수행 할 수 있고, 각각의 인스턴스 상태를 확인 할 수 있다 간단한 데모 서비스만 구축한 상태기 때문에 서버 이중화는 특별히 하진 않은 상태이다 현재는 Docker를 이용해서 기존 이미지를 바라보도록 한 것.......

Naver Blog

orphanRemoval = true 와 CascadeType.REMOVE

정말 정말 헷깔리는 옵션에 대해서 완벽하게 정리가 되어 기록으로 남기려고 한다 일단 상황을 아래 두 도메인 코드를 통해 확인 해 보자 간단하게 설명하면 app - app version의 관계는 @OneToMany 관계이고, 확인 해 볼 케이스는 2가지다 1. 부모 app 을 삭제 했을 경우, app version 이 삭제 되는 케이스 2. 부모 app을 통해서 자식 app version 엔티티를 컨트롤 (CRUD) 하는 케이스 (샘플이므로 app id = 4 인 것을 하드코딩 했다... 귀차니즘 ㅠㅠ) 1. 부모 App을 삭제 했을 경우, App Version이 삭제 되는 케이스 1) cascade = CascadeType.REMOVE 2) orphanRemoval = true CascadeType.REMOVE 와 orphanRemoval = t.......

Naver Blog

tsconfig.json 타겟을 지정하여 빌드 퍼포먼스 높이기

tsconfig.json의 include와 exclude를 활용하여 빌드 퍼포먼스를 높일 수 있다 위와 같은 주제로 git MR이 올라와 관련 내용을 정리 하고자 한다 (https://github.com/microsoft/TypeScript/wiki/Performance#misconfigured-include-and-exclude) [tsconfig.json 또는 jsconfig.json에 대한 구성] 타입스크립트와 자바스크립트 사용자는 tsconfig.json 또는 jsconfig.json 파일을 통해 그들의 컴파일 환경을 구성할 수 있다 쉽게 생각해서 include / exclude를 통해 컴파일 구성에서 포함 시킬지 제외시킬지를 결정할 수 있는 설정인데, 타입스크립트 단이냐 자바스크립트 단이냐의 차이일 뿐이다 tsconfig.json https://github.com/microsoft/Ty.......

1 2