⚡GraphQL SPQR이란? GraphQL 은 웹 API를 위한 쿼리 및 조작 언어이다. GraphQL을 보다 원활하게 사용할 수 있도록 만든 라이브러리 중 하나는 SPQR 이다. 기존 접근 방식에서는 GraphQL을 프로젝트에 추가하려면 두 단계를 따라야 한다. 먼저 GraphQL 스키마 파일을 프로젝트에 추가해야 한다. 둘째, 스키마에서 각 유형을 나타내는 각각의 Java POJO를 작성해야 합니다. 이는 스키마 파일과 Java 클래스의 두 위치에서 동일한 정보를 유지 관리한다는 것을 의미한다. 이러한 접근 방식은 오류가 발생하기 쉽고 프로젝트를 유지 관리하는 데 더 많은 노력이 필요하다. GraphQL Schema Publisher & Query Resolver, 간단히 말해서 SPQR은 위의 문..
분류 전체보기
⚡JPA 사용 방법 (기본) 1. 의존성 추가 - maven repository 사이트에서 버전에 따라 추가가 가능하다. implementation 'org.springframework.boot:spring-boot-starter-data-jpa' 2. Entity Class 생성 - Entity가 설정된 Class는 JPA가 관리하는 클래스이고, 테이블과 매핑할 테이블은 어노테이션을 붙여 사용한다. # 여기에서 @Entity가 붙은 클래스는 JPA가 관리하는 클래스이고, 테이블과 매핑할 테이블은 해당 어노테이션을 붙인다. 만약 @ID의 컬럼이 자동 증가 하도록 테이블을 생성 했다면, @GeneratedValue 어노테이션을 사용해야한다. @Data @Entity @NoArgsConstructor @Ta..
⚡반복문의 종류 1. for loop 가장 빠르고 단순하다. 그래서 효율적이다. 모든 자료형에 대해 사용이 가능하다. 중간에 loop 건너뛰기나 종료가 가능하다. (continue or break) 반복 범위 컨트롤이 가능하다. (i++, i–, i+=2*i 등) 변수를 활용할 수 있다. (var i 값을 사용할 수 있다) 2. forEach 빠른 편이다. Array객체에서 사용이 가능하다. 일반 for문보다 가독성이 좋고, 객체형을 다루기가 쉽다. for문과 다르게 중간에 끊을 방법이 없다. (return으로 - skip가능) return값을 받지 못한다. 3. filter 빠른 편이다. Array객체에서 사용이 가능하다. chainable 하다. 빈 배열 요소를 반환하지 않는다. 대용량 배열 처리 시..
⚡대표적인 데이터 베이스 RDB NoSQL ⚡RDB :Relational DataBase (관계형 데이터베이스) 관계형 데이터 모델을 기본으로 두고 모든 데이터를 2차원 테이블 형태로 표현 하는 데이터 베이스 (쉽게 말해 엑셀 형태.) 서로 다른 테이블이 서로 관계를 맺고 모여있는 집합체. 관계를 나타내기 위해서 키(key) 각 테이블의 행들이 서로 연결되는 관계 (1:1, 1:N, N:M) 를 가질수 있다. 논리적 구성 Relation (릴레이션) Entity (개체) Attribute (속성) 과 Tuple (튜플) 로 구성 되어 있다. 논리 데이터 모델에서는 Entity, 관계형 데이터 모델에서는 Tabel, 관계형 모델에서는 Relation 이라고 불림. Attribute (속성) Entity를 ..
⚡GraphQL 이란? GraphQL은 2012년 페이스북 개발자들이 모바일 어플리케이션을 제작하면서 만든 쿼리 언어이다. 기존에 많은곳에서 사용중인 REST API를 보안하기 위해서 만들어 졌으며 현재 많은 곳에서 Graphql을 사용하고 있다. GraphQL은 SQL (Structed Query Language) 와 같은 쿼리 언어 이다. 하지만 언어적 구조의 차이는 매우 크고 사용하는 방식에도 차이가 존재한다. SQL이 데이터베이스 시스템으로 부터 데이터를 가져온다면, GraphQL의 경우는 클러이언트가 데이터를 서버로 부터 가져온다. ⚡GraphQL vs REST GraphQL이 REST API 방식을 보안하기 위해서 만들어졌다면 어떤 차이점이 존재하는지 한번 알아보자 GraphQL API는 보통..
⚡Spring JPA (Java Persistence API) JPA는 자바 진영에서 ORM(Object-Relational Mapping) 기술 표준으로 사용되는 인터페이스의 모음이다. ⚡ORM ORM(Object-Relational Mapping)은 객체와 관계형 DB를 매핑한다는 뜻 객체-관계 매핑의 줄임말이다 ORM을 이용하면, SQL문이 아닌 클래스의 메소드를 통해서 데이터베이스를 조작 가능하다. 개발자가 객체 모델만 이용해서 프로그래밍을 하는데 집중이 가능하다. 단점이 있다면, 신중하게 설계가 필요하다. 프로젝트의 복잡성이 커지는 경우 잘못된 구현으로 인해서 속도 저하 및 일관성이 없는 문제점이 생길수 있다. 구형 SQL문이라던지 대형 SQL문의 경우 속도측면에 따라서 별도의 튜닝이 필요하기 ..
⚡ 들어가기전 개발을 진행 하면서, 핵심 로직을 작성한 뒤에 공통적으로 따라오는 부분이 존재 하면서 AOP를 공부하게 되었다. 예를 들어서 특정 로직이 실행이 된 경우 이력을 남기는 부분, 특정 로직이 완료된 경우 서버에 프로토콜을 넘기는 경우 매번 동일한 공통 로직을 적어줘야되는 부분이 생겼다. 나처럼 특정 로직이 완성된 경우에 공통로직이 발생하는 경우도 있겟지만, 로직의 시작전, Exception이 떨어진 경우등 특정 시점에 적용시키는 것도 가능하다. ⚡ Spring Boot AOP (Aspect Oriented Programming) 측면 / 양상 지향적인 프로그래밍 관점 지향 프로그램이다. 중복된 코드를 떼어내서 분리하고 각각의 Method가 자신의 일에만 집중하게 해준다. 쉽게 설명하면 핵심 로..
⚡Jenkins 사용시 참조 사항 정리 WSL2 IP가 계속 변경이 되는 경우, 유동적으로 해당 서버의 IP를 찾아가도록 설정 하는 방법. 해당 작업을 하기전에 PowerShell의 스크립트 실행시 외부코드 수행 권한 확인 필요❗ > Get-ExecutionPolicy 위의 이미지와 같은 경우, 외부 코드가 실행되지 않도록 설정이 되어있는 것이다. 확인 하지 않고 스크립트를 실행하는 경우 정상적으로 적용된것으로 보이지만 실제 적용이 되지 않아서 이슈를 찾기가 매우 힘든 상황이 발생하니 확인이 필요하다. PowerShell 정책 변경 정책 옵션의 경우 여러가지가 있으니 한번 찾아봐야함. > Set-ExecutionPolicy Unrestricted 위의 정책의 경우 정책을 무제한으로 설정하는 옵션이다. 옵..
⚡Jenkins CI(Continuous integration), CD(Continuous Delivery) 지속적인 통합과 지속적 배포 환경을 구축하기 위한 도구이다. 빌드, 테스트, 배포 프로세스를 자동화하여 소프트웨어 품질과 개발 생산성을 높인다. ⚡설치 unbuntu 실행 및 ubuntu 업데이트 진행 > sudo -s > apt-get update > apt-get -y install apt-transport-https ca-certificates curl gnupg-agent software-properties-common > apt-get update JAVA 및 Jenkins 설치 JDK의 경우, 8이상을 설치 해야함. > sudo apt-get install openjdk-8-jdk > ..