무엇을 하고 있었냐면..FCM을 이용하여 푸시 알림을 구현했다. 알림 전송을 요청하는 과정에서 fcm access token을 받아와 정상적인 서버인지 검사하는데, 이 때 파이어베이스에서 발급 받은 json 형식의 서비스 키를 이용한다. 노출되면 안 되는 파일이기 때문에 secrets에 등록하여 자동 배포할 때 서버에 적재했다.([CI/CD] GitHub Actions와 AWS CodeDeploy를 활용한 SpringBoot 프로젝트 EC2에 자동 배포 적용 - CD편] 참고) 처음에 작성한 deploy.yml 중 파이어베이스 키 파일 적재 코드#firebase 키 데이터 파일 정보- name: Set Firebase Service Key JSON File run: | cd ./src/main/r..
전체 글
요런 조런 시도들CD편이 필요하다는 친구의 요청으로 작성해보는 계속되는 구글링 + 나홀로 CI/CD 도전기.. CD(지속적 제공/배포)에 앞서, CI(지속적 통합)편을 읽어보는 것을 권장합니다. [CI/CD] GitHub Actions와 AWS CodeDeploy를 활용한 SpringBoot 프로젝트 EC2에 자동 배포 적용 - CI편CI(Continuous Integration): 지속적 통합졸프 중 수많은 구글링과 함께 나홀로 CI/CD 시도하기.. 1. Repository의 Actions 창에서 Java with Gradle 선택Spring Boot, Gradle 프로젝트를 자동 배포하고 싶기 때문에 GitHubroel-yomojomo.tistory.com CD(Continuous Delivery/Deploymen..
CI(Continuous Integration): 지속적 통합졸프 중 수많은 구글링과 함께 나홀로 CI/CD 시도하기.. 1. Repository의 Actions 창에서 Java with Gradle 선택Spring Boot, Gradle 프로젝트를 자동 배포하고 싶기 때문에 GitHub Actions에서 Java with Gradle 선택 2. 자동으로 생성되는 gradle.yml(CI.yml) 템플릿 수정main 또는 dev 브랜치에 pull request시 아래의 작업이 실행됨- jobs: 실행될 작업들name: Java CI with Gradleon: pull_request: branches: [ "main", "dev" ]jobs: build: runs-on: ubuntu-late..
자바 8에서 새로이 제공하는 기술 스트림 API 병렬 연산 지원 → 메서드에 코드 전달 간결하게 동작 파라미터화 구현 가능 자바 8 이전: 익명 클래스 이용하여 동작 파라미터화 구현 가능 but 자바 8이 간단 명료 → 인터페이스의 디폴트 메서드 자바의 변화 스트림 처리 (Stream Processing) 스트림 한 번에 한 개씩 만들어지는 연속적인 데이터 항목들의 모임 스트림 API의 핵심 기존 한 번에 한 항목 처리 자바 8 작업을 고수준으로 추상화 → 일련의 스트림으로 만들어 처리 가능 👍🏻 스레드를 사용하지 않으면서 병렬성 얻을 수 있음 내부 반복 루프를 신경쓰지 않아도 됨. 라이브러리 내부에서 모든 데이터가 처리되는 내부 반복 외부 반복 *ex. for-each 각 요소를 반복하면서 작업을 수행..
알게 되는 내용 조금씩이라도 기록하기😛 Column Default 설정 두 가지 방법 status의 기본 값을 1이라고 설정하고 싶을 때 @Column(columnDefinition = “type default value”) or @ColumnDefault(”value”) **@Column(columnDefinition = "integer default 1")** private Integer status; // or **@ColumnDefault("1")** private Integer status; 실행 결과 DB에 insert할 때 default 값이 적용되도록 설정 문제점 status와 history에 default 값을 각각 1과 0으로 설정했는데, 새로운 약속 생성 기능에서 **em.persis..
문제 Code @Entity @Getter public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "name", nullable = false) private String userName; private Long age; } @Transactional void test() { Member member = new Member(); member.setName("김이름"); member.setAge(23L); em.persist(member); System.out.println("김이름의 id = " + member.getId()); // } 의문점 JPA는 em.per..
문제 spring 프로젝트 실행시 Column "start_value" not found 오류 발생 및 실행 안 됨 원인 스프링 프로젝트의 H2 데이터베이스 버전(2.1.214)과 로컬 H2 데이터베이스 버전(1.4.xxx)이 상이함 build.gradle에서 dependency 추가한 h2 database 버전 확인 방법 우측 Gradle > Dependencies > runtimeClasspath > com.h2database:h2:version 로컬 H2 database의 버전 확인 h2 실행 후 콘솔에서 아래 명령어 실행 select h2version() from dual; 해결 로컬 H2 삭제 스프링에 설치된 버전에 맞추어 재설치
본 포스트는 헤드퍼스트 디자인패턴을 읽고 정리한 글입니다. Ch4 팩토리 패턴 본 포스트는 아래 포스트에 이어지는 글입니다. [Design Pattern] 팩토리 메서드 패턴 (Factory Method Pattern) 본 포스트는 헤드퍼스트 디자인패턴을 읽고 정리한 글입니다. Ch4 팩토리 패턴 OverView 팩터리 패턴은 불필요한 의존성 없애 결합 문제를 해결한다. 모든 팩토리 패턴은 객체 생성을 캡슐화한다. roel-yomojomo.tistory.com Question: 원재료 공급 피자 가게의 모든 지점이 좋은 재료를 사용하도록 관리하는 시스템이 필요하다. 모든 지점에서 제품에 들어가는 재료군은 동일하지만, 지역마다 재료의 구체적인 종류는 조금씩 다르다. 재료군: 반죽, 소스, 치즈, 야채, 고..