본문 바로가기
728x90
반응형

Back Side53

[MongoDB] Transaction 트랜잭션 개념부터 실습까지 (1) - Transaction numbers are only allowed on a replica set member or mongos Transaction이란 예를 들어, 위 그림과 같이 4개의 데이터를 지운다고 과정을 하도록 하겠습니다. 순차적으로 작업을 하던 중 C에서 에러로 인해 데이터 삭제가 불가능한 상태가 되었습니다. C,D는 데이터 삭제가 이루어지지 않았지만 C의 앞에 있던 A, B는 이미 데이터가 삭제된 상태죠. 이럴때 어떻게 해야할까요? 이처럼 트랜잭션은 복수개의 작업 중 한 개라도 실패하면 모두 실패로 간주하여 작업 전 상태로 돌아가게 합니다. 그럼 간단한 실습을 통해 트랜잭션을 좀 더 알아보도록 하겠습니다. 실습 export var exampleTransaction: RequestHandler = async (req, res) => { // startSession() - 세션 생성 const session = awai.. 2022. 7. 1.
[기타] Message Queue 메시지 큐란 프로세스(또는 프로그램) 간에 데이터를 교환할 때 사용하는 통신 방법 중 하나입니다. 비동기 메시지를 사용하는 응용 프로그램들 사이에서 데이터를 송수신하는 것을 의미합니다. 메시지란 요청, 응답, 오류 메시지 혹은 단순한 정보 등의 작은 데이터가 될 수 있습니다. 여기에서 메시지 큐는 메시지를 임시로 저장하는 간단한 버퍼인 것이다. 메시지를 전송 및 수신하기 위해 중간에 메시지 큐를 두는거죠. 대표적인 메시지 큐 시스템은 RabbiMQ, ActiveMQ, ZeroMQ, Kafka가 있습니다. 사용하는 이유 일반적인 클라이언트-서버 구조에서는 메시지 큐를 사용하지 않습니다. 대신 언젠가는 큐에 넣어둔 메시지가 소비되어 처리될 것이라고 생각하고 사용합니다. 그렇기 때문에 핵심 작업보다는 어플리케.. 2022. 6. 29.
[MongoDB] lean() 메서드로 JavaScript Object 만들기 JavaScript로 객체를 합치는 방법을 찾고 있었습니다. 가장 간단한 방법인 Spread Operator를 이용했지만 생각과 다른 결과값이 나와 당황했어요. { "result": 100, "data": { "$__": { "activePaths": { "paths": { ... }, "states": { "ignore": {}, "default": {}, "init": { ... }, "modify": {}, "require": { ... } }, "stateNames": [ "require", "modify", "init", "default", "ignore" ] }, "skipId": true, "strictMode": true, "selected": { ... }, "fields": { ... .. 2022. 5. 30.
Notion API - 데이터 불러오기 노션 API를 쓸 수 있다는 정보를 얻자마자 바로 써보기로 결정했다. 순서대로 실행주면 노션 API를 사용할 수 있을 것이다. 1) API 발급 받기 https://www.notion.so/my-integrations Notion – 메모, 작업, 위키, 데이터베이스를 위한 올인원 워크스페이스 매일 쓰는 여러 업무용 앱을 하나로 합친 새로운 도구. 당신과 당신의 팀을 위한 올인원 워크스페이스예요. www.notion.so 위 주소를 클릭해서 API를 발급 받아주면 된다. 새 통합 만들기를 클릭 후 정보를 기입해주면 끝. 2) 데이터베이스 만들기 노션에서 간단한 데이터 베이스를 만들어준다. 3) 워크페이스와 공유하게 만들기 데이터베이스에 입력한 데이터들을 가지고 올려면 워크페이스와 공유가 되어야 한다. 해.. 2022. 3. 21.
[Web] HTTP API와 REST API API 우선 기본적인 API에 대해서 알아보자. API는 컴퓨터 혹은 프로그램끼리의 연결이다. 어떻게 연결을 할지 정리하고 기준을 정하는 것이 API 명세다. HTTP API HTTP API는 HTTP를 통신 방식으로 사용하는 API이다. HTTP 요청을 통해서 서버에 접근할 수 있도록 한다. REST API REST는 웹 서비스의 구조를 만드는데 활용되는 패턴이다. REST를 이용해서 다른 컴퓨터 혹은 프로그램과의 연결을 더 쉽게 할 수 있다. REST한 프로그램이 되려면 HTTP 메소드 중에서 POST, GET, PUT, DELETE만을 활용해야 한다. 또한 REST API로 불리기 위해서는 필요한 조건들이 있고 모두 충족한다면 RESTful API라고 불린다. 필요한 조건들 클라이언트 - 서버 구조.. 2022. 1. 31.
[어노테이션] @RequiredArgsConstructor 의존성 주입 Lombok를 이용해서 코드를 줄일 수 있다. Update를 하기 위해 Service 클래스에 @Service public class CourseService { private final CourseRepository courseRepository; public CourseService(CourseRepository courseRepository) { this.courseRepository = courseRepository; } @Transactional public Long update(Long id, Course course) { Course course1 = courseRepository.findById(id).orElseThrow( () -> new IllegalArgumentException(".. 2021. 11. 21.
스프링 포트에러 해결 - "Web server failed to start. Port 8080 was already in use" 스프링 프로젝트 생성 후 실행해보니 "Web server failed to start. Port 8080 was already in use.라는 문구와 함께 실행이 되지 않았다 ❗️ 이전에도 같은 경험을 해서 https://7942yongdae.tistory.com/35 Error - Port 8080 was already in use Port 8080 was already in use 에러와 원인과 해결 방법 메시지 *************************** APPLICATION FAILED TO START *************************** Description: Web server failed to start. Port 8080 was.. 7942yongdae.tistory.c.. 2021. 11. 18.
맥에서 Robo 3T '개발자를 확인할 수 없기 때문에' 해결방법 DB를 배우기 시작하면서 몇일 전에 깔아둔 Robo 3T를 클릭했다. 그런데 '개발자를 확인할 수 없기 때문에 'Robo 3T'을(를) 열 수 없습니다.' 라는 창이 나왔다. 휴지통으로 이동과 취소 밖에 없기 때문에 빠르게 구글링을 했다. 해결방법은 생각보다 간단하고 쉬웠다. 1. Finder > 응용 프로그램 > Robo 3T 오른쪽 클릭 > 열기 누르기 아마 Launchpad에서 Robo 3T 클릭했을 경우가 크다 Finder에 들어가서 응용프로그램에 있는 Robo 3T를 오른쪽 클릭 해주고 열기를 누르면 아래와 같은 이미지가 나올 것이다. 아까와 다르게 열기라는 기능이 하나 더 보인다! 정말 간단하지만 구글링을 하지 않았다면 어떻게 해결해야할지 막막했을 것 같다. 인제 열기를 눌러주고 정책 동의창이.. 2021. 7. 16.
728x90
반응형