반응형

전체 글 103

DTO와 VO는 무엇인가?

해당 포스팅은 테코톡 유튜브를 기반으로 작성되었습니다. http://https://www.youtube.com/watch?v=z5fUkck_RZM DTO와 VO의 혼용 사례와 원인 구글링을 해보면 일반적으로 많은 사람들이 DTO와 VO를 혼용하여 사용하고 있습니다. J2EE Patterns라는 책의 초판에서는 데이터 전달용 객체를 VO로 정의하였지만 혼동의 여지가 있다고 판단하여 2편에서는 데이터 전달용 객체를 TO로 재정의하면서 사람들이 혼용하게 되었을것이라고 여겨집니다. 현재 데이터 전달용 객체의 정의는 TO앞에 데이터를 의미하는 D를붙인 DTO로 통용되고 있습니다. DTO와 VO는 이름부터 다른만큼 구분하여 사용하여야 합니다. https://book.naver.com/bookdb/book_detai..

XML, JSON, YAML이 무엇인가?

본 포스팅은 유튜브 https://www.youtube.com/watch?v=55FrHTNjTCc 기반으로 작성되었습니다. 윈도우 메모장 그리고 Enter키가 없는 키보드가 있는 상태에서 데이터를 보내는 상황을 가정해봅시다. 신문기사라면 단순히 길어지고, 장보기 목록 등은 쉼표로 구분할 수 있습니다. 하지만, 이런 표는 어떻게 보내지게 될까요 이와같이 어떠한 구조를 가진 정보에서 어려움이 시작됩니다. 이를 어떻게 한줄로 이어지는 텍스트로 만들 수 있을지 생각해봅시다. 여기서 가장 널리 사용되는 형식이 XML과 JSON 입니다. 서비스를 구성하는 소프트웨어 사이에는 수많은 정보들이 주고받아 집니다. 사람에게는 표와같은 구조로 데이터를 보내는것이 이해하기 쉽지만 컴퓨터에게는 한줄로 쭉이어진 텍스트로 받아지기..

OSI 7 Layer (계층)

본 포스팅은 유튜브 10분 테코톡을 기반으로 만들어졌습니다. https://www.youtube.com/watch?v=1pfTxp25MA8 1계층 물리계층 (Physical Layer) 두 대의 컴퓨터가 통신하려면? 모든 파일과 프로그램은 0과 1의 나열입니다. 결국 0과 1만 주고받을 수 있으면 됩니다. 두 대의 컴퓨터를 전선 하나로 연결한다고 상상해봅시다. 1을 보낼 때는 +5V의 전기를 전선으로 흘려보내고 0을 보낼 때는 -5V의 전기를 전선으로 흘려보내면 0과 1의 전송이 가능할 것입니다. 0과 1을 주고받을 수 있으면 모든 데이터를 주고받을 수 있으므로 이제 두 컴퓨터는 모든 데이터를 주고받을 수 있게 되었습니다. 그러나, 실제 상황에선 잘 동작하지 않았습니다. 아래 그림으로 설명하겠습니다. s..

부하 분산을 위한 MySQL 쿼리요청 분기

진행중인 프로젝트 https://github.com/Hwangwonuk/cucumber-market GitHub - Hwangwonuk/cucumber-market: 중고물품 거래사이트 오이마켓 토이프로젝트 중고물품 거래사이트 오이마켓 토이프로젝트. Contribute to Hwangwonuk/cucumber-market development by creating an account on GitHub. github.com 개요 원인 : cucumber-market의 Service Layer에 속해있는 거의 모든 메소드가 데이터베이스에 쿼리 요청을 보냅니다. 문제 : 많은 사람들이 서비스를 사용하고 있다면 현재 사용하고 있는 MySQL 서버가 Scale UP되어 있더라도 서버 한대가 모든 트래픽을 견디기에..

Disk Based Database, In Memory Database

진행중인 프로젝트 https://github.com/Hwangwonuk/cucumber-market GitHub - Hwangwonuk/cucumber-market: 중고물품 거래사이트 오이마켓 토이프로젝트 중고물품 거래사이트 오이마켓 토이프로젝트. Contribute to Hwangwonuk/cucumber-market development by creating an account on GitHub. github.com https://wonuk.tistory.com/129 Sticky Session, Session Clustering, Session Storage 다중 서버 환경에서 세션을 어떻게 관리할 것인가? 진행중인 프로젝트 https://github.com/Hwangwonuk/cucumber-m..

Sticky Session, Session Clustering, Session Storage

다중 서버 환경에서 세션을 어떻게 관리할 것인가? 진행중인 프로젝트 https://github.com/Hwangwonuk/cucumber-market GitHub - Hwangwonuk/cucumber-market: 중고물품 거래사이트 오이마켓 토이프로젝트 중고물품 거래사이트 오이마켓 토이프로젝트. Contribute to Hwangwonuk/cucumber-market development by creating an account on GitHub. github.com 시작에 앞서 이전글에서는 서버의 성능을 향상시킬 수 있는 두 가지 방법, Scale Up과 Scale Out과 데이터 정합성과 무결성 대해 알아보았습니다. 각기 다른 장단점이 있지만 제 서비스에 적용할 방법은 이미 많은 서비스에서 사용하..

Block vs Non-Block & Sync vs Async

이미지 자료 출처 : https://www.youtube.com/watch?v=oEIoqGd-Sns Blocking VS Non-Blocking 보통 직접 제어할 수 없는 I/O, 멀티스레드 동기화 등에 적용되는 개념입니다. Block/Non-Block은 제어권의 이동이라는 개념으로 설명하기도 합니다. Blocking 2개 이상의 작업이 있을 때 자신의 작업을 진행하다가 다른 주체의 작업이 시작되면 다른 작업이 끝날 때까지 기다렸다가 자신의 작업을 시작하는 것 설명을 위하여 왼쪽 작업을 A라 칭하고 오른쪽 작업을 B라고 칭하겠습니다. Blocking은 A의 작업 도중 B를 호출하는 경우 B의 작업이 끝날 때까지 A는 작업을 할 수 없습니다. 제어권이 A에 있다가 B를 호출할 때 B로 제어권이 이동하게 됩..

스프링 HandlerMethodArgumentResolver이란?

ArgumentResolver 정확히는 HandlerMethodArgumentResolver 인데 줄여서 ArgumentResolver 라고 부릅니다. 애노테이션 기반의 컨트롤러는 매우 다양한 파라미터를 사용할 수 있습니다. HttpServletRequest , Model 은 물론이고, @RequestParam @ModelAttribute 같은 애노테이션 그리고 @RequestBody , HttpEntity 같은 HTTP 메시지를 처리하는 부분까지 매우 큰 유연함을 보여줍니다. 이렇게 파라미터를 유연하게 처리할 수 있는 이유가 바로 ArgumentResolver 덕분입니다. 애노테이션 기반 컨트롤러를 처리하는 RequestMappingHandlerAdaptor 는 바로 이 ArgumentResolver ..

레플리케이션(Replication), 클러스터링(Clustering), 샤딩(Sharding), MySQL

레플리케이션(Replication), 클러스터링(Clustering), 샤딩(Sharding) 셋 모두 여러곳에서 사용하는 단어이지만 본 포스팅에서는 DB에 관련하여 설명합니다. 진행중인 프로젝트 MySQL - Replication(부하 분산) 적용, Redis - Clustering(Active - Standby) 적용 GitHub - Hwangwonuk/cucumber-market: 중고물품 거래사이트 오이마켓 토이프로젝트 중고물품 거래사이트 오이마켓 토이프로젝트. Contribute to Hwangwonuk/cucumber-market development by creating an account on GitHub. github.com 개요 Sharding, Clustering, Replicatio..

Spring fox(Swagger) - API 문서화

API Docs는 왜 필요한가? 본인이 위치 서비스를 구현한다고 가정해봅시다. 그렇다면 대한민국 지도 데이터를 모두 구현해야 할 것입니다. 하지만 이미 잘 구현된 라이브러리가 공개되어 있다면? 즉, 네이버 지도 API 등을 사용하면 시간도 절약할 수 있고, 완성도가 높은 서비스를 나의 서비스에 적용시킬 수 있습니다. API Doucuments란? API Documents는 API 사용 방법을 사용자에게 알려주는 문서입니다. API를 잘 사용하기 위해서는 API 문서를 잘 읽어야 합니다. 위에서 언급한 API뿐만 아니라, 외부에 공개하는 모든 API들은 Documents가 존재합니다. 요청 URL 해당 API에 대한 설명 헤더 정보 요청 파라미터 응답 데이터 요청 파라미터와 응답 데이터에 대한 설명 API..

반응형