목록전체 글 (68)
우당탕탕 개발일지

3-Tier 아키텍처란? 어떠한 플랫폼이나 애플리케이션을 3계층으로 나누어 별도의 논리적/물리적인 장치에 구축 및 운영하는 형태이다. 통 프레젠테이션 계층, 어플리케이션 계층, 데이터 계층으로 나눈다. 프젠테이션 계층 - 사용자가 애플리케이션과 상호작용하는 인터페이스 - 일반적으로 HTML, JS, CSS 등이 이 계층에 포함되며, 프론트엔드라고 불린다. 애플리케이션 계층 - 요청되는 정보를 어떠한 규칙에 따라 처리하고 가공한다. - 백엔드로 불린다. 데이터 계층 - 데이터 베이스와 데이터 베이스에 접근하여 데이터를 CRUD 한다. 폴더 구조 - dev/ : Terraform 구성이 정의된 파일 - modules/ : 리소스 집합 3-Tier 아키텍처 구현 [ sg ] 보안 그룹 * Source: 출발지..

테라폼(Terraform)이란? 클라우드 및 온프레미스 리소스를 안전하고 효율적으로 빌드, 변경 및 버전화할 수 있는 코드형 인프라 도구 API를 호출해 명령을 실행하는 절차적인 방법과 달리 HCL 언어로 선언적으로 클라우드 리소스를 정의하기 때문에 여러번 테라폼을 실행하더라도 여러 개의 리소스가 만들어지지는 않는다. 1. 패키지 설치 # sudo yum install -y yum-utils 2. YUM Repository 추가 # sudo yum-config-manager \ --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo # cat /etc/yum.repos.d/hashicorp.repo // 확인 3. 테라폼 패키지 ..

계층형 질의란? 테이블에 계층형 데이터가 존재하는 경우 데이터를 조회하기 위해서 사용 * 계층형 데이터 동일 테이블에 계층적으로 상위와 하위 데이터가 포함된 데이터 START WITH 계층 구조 전개의 시작 위치를 지정하는 구문 CONNECT BY 전개될 자식 데이터를 지적하는 구문 PRIOR CONNECT BY 절에 사용 PRIOR 자식 = 부모 부모 데이터에서 자식 데이터(부모 → 자식) 방향으로 전개하는 순방향 전개 PROR 부모 = 자식 자식 데이터에서 부모 데이터(자식 → 부모) 방향으로 전개하는 역방향 전개 NOCYCLE 사이클(Cycle)이 발생한 데이터는 런타임 오류가 발생하지만, NOCYCLE을 추가하면 사이클이 발생한 이후의 데이터는 전개하지 않는다 * 사이클(Cycle) 데이터를 전개..

JOIN 두 개 이상의 테이블을 연결 또는 결합하여 데이터를 출력하는 것을 의미한다. 일반적으로 PK나 FK 값의 연관에 의해 성립되지만, 논리적인 값들의 연관만으로도 JOIN이 성립 가능하다. SELECT 테이블.컬럼, 테이블.컬럼 FROM 테이블1, 테이블2 WHERE 조건 EQUI JOIN (등가 조인) 두 개의 테이블 간에 칼럼 값들이 서로 정확하게 일치하는 경우에 사용되는 방법 Non EQUI JOIN (비등가 조인) 두 개의 테이블 간에 칼럼 값들이 서로 정확하게 일치하지 않는 경우에 사용된다. Join 종류 1) INNER JOIN JOIN 조건에서 동일한 값이 있는 행만 반환한다. INNER JOIN 표시는 JOIN 조건을 FROM 절에서 정의하겠다는 표시이므로 USING 조건절이나 ON ..

CI(Continuous Integration)란? CI는 어플리케이션의 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트 되어 공유 레포지토리에 통합하는 것을 의미한다. 즉, 개발 및 테스트를 자동화한다. CD(Continuous Delivery & Continuous Deployment)란? CD는 지속적 제공(Continuous Delivery) 혹은 지속적 배포(Continuous Deployment) 두 용어 모두의 축약어이다. 지속적 제공은 공유 레포지토리로 자동으로 Release 하는 것, 지속적 배포는 프로덕션 레벨까지 자동으로 deploy 하는 것을 의미한다. 즉, 개발자의 변경 사항이 레포지토리를 넘어, 고객의 프로덕션 환경까지 릴리즈 되는 것을 의미한다. CI/CD 파이프라인 CI/..
Axios 인스턴스 request를 보낼 때 공통으로 사용하는 주소나 헤더를 axios 인스턴스로 생성한다. import Axios from "axios"; import { BASE_URL } from "../axios.constant"; export const axiosInstance = Axios.create({ baseURL: BASE_URL, timeout: 1000, }); 예를 들어, 401(Unauthorized) 에러가 서버로부터 들어오면 토큰을 갱신해준 후 재요청을 보내는 과정을 한번에 처리함으로써 중복 코드를 제거하고 유지보수성을 향상시킬 수 있다. [ 참고 ] * 절대경로 설정 프로젝트 개발을 하다 보면 여기저기서 서로 다른 경로의 파일들을 불러와야 할 때가 많은데, 상대 경로를 사용..

카카오 지도 API는 무료로 제공되고 있으며, 사용을 위해서는 아래와 같이 키 발급을 받아야 한다. [ 참조 : https://apis.map.kakao.com/web/guide/ ] 1. 카카오 개발자사이트 (https://developers.kakao.com) 접속 2. 개발자 등록 및 앱 생성 3. 웹 플랫폼 추가: 앱 선택 – [플랫폼] – [Web 플랫폼 등록] – 사이트 도메인 등록 4. 사이트 도메인 등록: [웹] 플랫폼을 선택하고, [사이트 도메인] 을 등록합니다. (예: http://localhost:8080) 5. 페이지 상단의 [JavaScript 키]를 지도 API의 appkey로 사용합니다. 6. 앱을 실행합니다. API 키 저장 .env 파일에 API_KEY를 저장한다. CRA로..

훅 계층 구조 훅 계층 구조는 다음과 같이 나눌 수 있다. 쿼리 훅 계층에서는 React Query를 직접 호출하고 사용하며, 쿼리 키를 사용할 수 없다. queryClient 객체를 사용하는 곳은 이 곳 밖에 없다. 비즈니스 로직 훅 계층에서는 쿼리 훅 계층으로부터 반환되는 값으로 작성되는 비즈니스 로직들이 포함되는 영역이다. 쿼리 훅 계층으로부터 remote data 혹은 mutation 객체를 받아 컴포넌트에게 비즈니스 로직을 전달하는 역할을 수행한다. 컴포넌트 계층에서는 비즈니스 로직 훅 계층으로부터 비즈니스 로직을 전달받아 핸들러 코드를 만들어 컴포넌트에서 사용된다. useMutation 서버에 데이터를 업데이트하도록 서버에 네트워크 호출을 실시한다. useMutation은 mutate 함수를 ..