반응형

프로젝트 24

Docker란 무엇인가? 왜 쓰는가? 소개편

본 포스팅은 유튜브를 기반으로 작성되었습니다. https://www.youtube.com/watch?v=chnCcGCTyBg https://www.youtube.com/watch?v=tPjpcsgxgWc 1번 영상 Docker가 해결하는 문제점은 무엇인가? Environment disparity - 예를 들면 금요일 저녁에 개발을 하고 있고, 그걸 서버에 올리기만 하면 되는 상황에서 일을 거의 다했고, 금요일 저녁 퇴근만 남겨둔 상황에서 코드를 서버에 올렸더니 작동을 제대로 하지않는 상태입니다. 아마 그 이유는 개발자의 컴퓨터는 윈도우고, 서버는 리눅스여서 발생하는 문제일 것입니다. 이것이 Environment disparity 입니다. 이러한 문제점을 Docker가 해결해줍니다. Docker를 통해 다..

JDBC, SQL Mapper(MyBatis), ORM

해당 포스팅은 테코톡 유튜브를 기반으로 작성되었습니다. https://www.youtube.com/watch?v=VTqqZSuSdOk https://www.youtube.com/watch?v=mezbxKGu68Y JDBC, SQLMAPPER, ORM의 공통점 PERSISTENCE 영속성 데이터를 생성한 프로그램의 실행이 종료되더라도 사라지지 않는 데이터의 특성 영구히 저장되는 그 어떤 것 JDBC JAVA DATABASE CONNECTIVITY 1997년 JDBC의 등장 JDBC API (JAVA DATABASE CONNECTIVITY) 1990년대 중반, 인터넷이 보급되고 DB산업이 성장했습니다. 그에따른 온라인 비지니스의 투자 증가로 DB Connector에 대한 니즈가 생깁니다. JAVA 진영의 D..

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..

부하 분산을 위한 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로 제어권이 이동하게 됩..

레플리케이션(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..

Scale Up, Sacle Out 서버 확장

1. 문제점 자신이 개발한 서비스의 사용자수가 늘어나고 동시에 접속한다면 서버 하나로는 부족합니다. 이러한 대규모 트래픽을 감당할수 있도록 서버의 성능을 향상시켜야 합니다. Scalability 시스템의 늘어나는 작업량을 자원을 추가하는 방법으로 처리하는 능력입니다. - 출처 위키피디아 시스템이 더 많은 작업을 처리하기 위해 이를 감당할 리소스를 추가하는 것도 하나의 Scalability라고 할 수 있습니다. 얼마나 많은 트래픽을 처리할 수 있는지, 스토리지 용량을 추가하기가 얼마나 쉬운지, 얼마나 많은 트랜잭션을 처리할 수 있는지 등 시스템 안에서도 많은 부분이 Scalability로 설명됩니다. 이러한 관점에서 시스템의 더 나은 성능을 위해 리소스를 확장하는 방법은 두 가지 방법이 있습니다. 2. 서..

반응형