본문 바로가기

전체 글23

Transaction(트랜잭션) Transaction : 거래, 처리 트랜잭션은 데이터베이스의 상태를 변화시키기 위해서 수행하는 작업의 단위를 뜻한다. 혹은 데이터베이스 시스템에서 복구 및 병행 수행 시 처리되는 작업의 논리적 단위이다. 여기에서 작업의 단위는 많은 질의어 명령문들을 사람이 정하는 기준에 따라 정해진다. 쉽게 말해 한꺼번에 수행되는 일련의 연산모음이라고 생각하면 된다! 데이터베이스 상태 변화란 다음과 같은 질의어(SQL)를 이용하여 데이터베이스에 접근하는 것을 의미한다. SELECT INSERT DELETE UPDATE 간단한 예시 A의 계좌에 50,000원 B의 계좌에 50,000원이 있을 때 A가 B에게 10,000원을 계좌이체한다. 하지만 전산상 오류로 인해 A의 소지금은 40,000원으로 줄었으나 B의 소지금은 .. 2024. 2. 16.
CI/CD CI/CD : 지속적인 통합(Continuous Integration)/지속적인 제공/배포(Continuous Delivery/Deployment) CI/CD는 애플리케이션 개발 단계를 자동화하여 애플리케이션을 더욱 짧은 주기로 고객에게 제공하는 방법이다. 특히, CI/CD는 애플리케이션의 라이프사이클(통합, 테스트, 제공, 배포) 전체에 걸쳐 지속적인 자동화와 지속적인 모니터링을 제공한다. 이러한 구축 사례를 CI/CD 파이프라인이라고 부르며, 개발 및 운영팀의 애자일 방식 협력을 통해 DevOps 또는 SRE 방식으로 지원된다. CI란? 애플리케이션의 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 레포지토리에 통합하는 것을 의미한다. 버그를 신속하게 찾아 해결, 소프트웨어의 품질을 개선.. 2024. 2. 15.
DevOps(데브옵스) DevOps : 개발(Development) + 운영(Operation) DevOps는 시스템 개발자와 운영을 담당하는 정보기술 전문가 사이의 소통, 협업, 통합 및 자동화를 강조하는 소프트웨어 개발 문화이자 방법론이며, 애자일(Agile) 소프트웨어 개발과 지속적인 통합 등의 개념과도 관련이 있다. ☞ 개발팀과 운영팀 간의 원활한 소통을 기반으로 운영팀에서 고객의 수요를 맞춰 서버와 데이터베이스를 관리하는 일을 통해 서비스가 제대로 작동할 수 있는 환경을 개발팀에게 제공할 수 있다. 애자일 소프트웨어 개발 계획과 문서를 기반으로 개발 모형이나 모델에 따라 앞을 예측하여 개발하는 것이 아니라, 실질적인 코딩을 기반으로 일정한 주기에 따라 계속적으로 프로토타입을 형성하고 필요한 요구사항을 파악하며 이에 따.. 2024. 2. 13.
Component(컴포넌트) Component : (구성) 요소, 부품 컴포넌트는 프로그래밍에 있어서 재사용이 가능한 각각의 독립된 모듈이다. 레고로 비유하자면 레고 조각(Component)들을 조합해서 하나의 레고 모형(Object)를 만든다고 할 수 있다. 웹 컴포넌트는 컴포넌트 기반의 프로그래밍을 웹에서도 적용할 수 있도록 W3C에서 새롭게 정한 규격이다. 웹 컴포넌트는 최신 브라우저, JavaScript라이브러리, Framework에서도 사용할 수 있다. 웹 컴포넌트를 이용해서 코드를 작성하면 Vue.js, React.js와 같이 라이브러리, 프레임워크에 의존하지 않고 상호 운용이 가능하게끔 작성할 수 있다. 핸드폰에서 배터리 수명이 다 되었을 경우 오래된 배터리(예전 장치)만 분리하여 새로운 배터리(새로운 장치)로 교체하듯.. 2024. 2. 11.
Mock Data Mock : 거짓된, 가짜의, 모의의 Mock Data는 실제 API에서 받아온 데이터가 아닌 프론트엔드 개발에서 필요에 따라 샘플로 만든 데이터를 뜻한다. Mock Data 사용하는 이유 백엔드 API가 완성이 되지 않았을 때 데이터가 들어오는 상황을 대비해 UI가 의도한대로 구현되는지 확인하기 위해서 Mock Data를 쓰면 실제 API가 없더라도 API 데이터처럼 UI 랜더링이 가능하다. 장점 Mock 데이터들을 예시로 만들어 놓으면 바로 테스트를 해볼 수 있다. 형식 json형식으로 되어있다. key : value의 객체형태로, 백엔드와의 데이터 통신을 위해 사용한다. => UI를 만들 때 상수 데이터일 경우 백엔드 서버에서 데이터를 받아올 필요가 없다. 변수 데이터일 경우 백엔드 서버에서 데이터.. 2024. 2. 8.
Spring Boot 2.7 -> 3.2 변경사항 Spring Boot 2.7 -> 3.2 변경사항 Java 17 이상만 사용 javax.* -> jakarta.* application.properties / application.yaml (use-legacy-processing 사용불가) AntPathMatcher -> PathPatternParser 외부 라이브러리 사용 시 Jakarta, Spring Framework 6.0 버전 지원 여부 확인 필요 2024. 2. 2.
HTTP 인증 방식 1. Basic Authentication 사용자 이름 / 비밀번호를 Base64로 인코딩하여 Authorization 헤더에 포함하여 전송하여 인증하는 방식 매우 안전하지 않음, SSL / TLS와 함께 사용 (Request 헤더에 표시될 때) Authorization : Basic (인코딩 된 내용) 2. Bearer Token Authentication 헤더에 토큰을 포함하여 전송 Authorization 헤더에 포함하여 전송하여 인증하는 방식 JWT를 사용하여 인증 간단한 방식, 상태를 유지하지 않음, 확장성이 높음 토큰 노출 위험, 토큰 관리가 귀찮다 (Request 헤더에 표시될 때) Authorization : Bearer ~ 3. OAuth 토큰 기반 인증 방식, 사용자가 직접 자격을 증명.. 2024. 2. 2.