본문 바로가기

분류 전체보기

(126)
2021년 11월 회고 - 1 보호되어 있는 글입니다.
DB Replication [10분 테코톡] ✌️ 영이의 Replication을 들으며 정리한 글입니다.. Replication이란? 한 서버에서 다른 서버로 데이터를 동기화하는 것 원본 데이터를 가지는 서버를 Source 서버 복제된 데이터를 가지는 서버를 Replica 서버 Why? 부하를 줄이기 위해서 (Scale-out) 갑자기 늘어나는 트래픽을 대응하는데 유연한 구조 데이터 백업 레플리카를 안하더라도 백업을 해야함 백업 과정은 실제 실행중인 쿼리들에 영향을 줄 수 있음 레플리카 서버에서 데이터 백업을 실행하여 소스 서버에서 백업 시 발생하는 문제 해결 데이터 분석 분석용 쿼리는 대량의 데이터를 조회하고, 쿼리 자체가 무거운 경우가 많음 소스 서버에서 하게 되면 문제가 될 수 있으니, 레플리카 서버에서 분석용 쿼리만 전용으..
트랜잭션과 Spring의 선언적 트랜잭션에 대하여 트랜잭션이란? 더이상 나눌 수 없는 논리적인 작업 단위를 의미하며, 데이터베이스에서는 상태를 변경시키기 위해 수행하는 작업 단위이다. 스프링에서 선언적 트랜잭션 스프링에서는 트랜잭션 처리를 지원하는데, 그 중 한 방법으로 @Transactional 어노테이션을 클래스 혹은 메서드 위에 추가할 수 있다. 이를 선언적 트랜잭션이라고 부른다. 트랜잭션의 성질 (ACID) 데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질 Atomicity - 원자성 더 이상 쪼갤 수 없는 원자의 성질 한 트랜잭션 내에서 실행한 작업들은 하나로 간주 COMMIT이거나, ROLLBACK 이거나 Consistency - 일관성 트랜잭션이 성공적으로 완료되면, 일관성 있는 데이터베이스의 상태를 유지함 ex) 트랜잭션..
Nginx를 이용한 로드 밸런싱, 무중단 배포까지의 고찰 로드 밸런싱 적용, 덤으로 무중단 배포까지 왜 로드밸런싱? 로드 밸런싱, 무중단 배포 설계에 대한 내용만을 중점적으로 보여주기 위해 앞 단의 프론트 인프라 구조와 DB Replication 적용 후의 구조는 잠시 생략한다. 로드 밸런싱을 적용하기 전, 웹서버 한대는 WAS 하나를 가리키고 있었다. 이 경우 수많은 요청이 오더라도, 우리는 서버 한대 분량의 부하만을 견딜 수 있었다. 하지만, 놀토의 사용자가 늘고 또 이 사용자들이 동시적으로 혹은 처리 비용이 높은 트래픽이 많아질 경우를 고려할 필요가 있다. 이 때 사용할 수 있는 기술이 로드 밸런싱인데 간단히 말하면 여러대의 서버에 (여러 고려사항을 적용해) 적절하게 요청을 분산하는 기술이다.​ 장점 한 대의 서버의 부하를 분산시킬 수 있다. 한 대의 서..
[우아한 테크코스 3기] 웹 백엔드 지원 과정부터 프리코스까지 후기 2020년 12월 15일 작성했던 글 감사하게도 우형에서 주관하는 우아한 테크코스 웹백엔드 과정 1차에 선발이 되었고, 우테코에 지원하는 과정과 프리코스를 진행하며 느끼고 배운 것들을 기록해보려 한다. 내가 우테코에 대해 적은 글들이 정답은 아니지만, 혹시나 다음 우테코에 지원하려는 사람들이 이 글을 보게 된다면, 우아한 테크코스 프리코스를 참가한 사람은 이런 것을 느꼈구나!로 재밌게 봐주면 좋겠다 😀 지원의 서막 어느날. jojoldu님의 주니어 개발자 채용 정보에서 우아한 형제들에서 주관하는 소프트웨어 장인 양성 프로그램 우아한 테크코스 를 보게 되었다. 사이트를 쭉 보면서 이 프로그램이 어떤 프로그램이며, 어떤 교육 과정을 가지고 있는지 쭉 보게되었다. 출처 : 우아한 테크코스 웹 사이트 미션 기반..
인덱싱 [10분 테코톡] 🍫 찰리의 인덱싱을 들으며 정리한 글입니다. Index란? 보통 배열의 위치를 인덱스라고 한다. 결국 데이터가 있는 위치를 특징할 수 있는 정보 ! 단어의 뜻 색인 - 어떤 것을 뒤져서 찾아내거나 필요한 정보를 밝힘 데이터베이스의 Index 사용 목적 대용량 데이터에서 원하는 데이터를 빠르게 조회하기 위해서이다. 결국 SELECT 쿼리의 대용량 데이터 조회 시 조회문 조회 속도를 향상시키기 위함이다. 하지만 INSERT, UPDATE, DELETE 시 성능을 조금 희생해야 한다. 혹은 대용량이 아니면 조회 시 성능 향상이 없나 ? 있긴 하지만 큰 효과는 볼 수 없을 것이다. Index의 작성 / 삭제 Index도 하나의 데이터베이스 객체이다. Oracle, DB2 등에서는 스키마 객체,..
Level 4. MVC 프레임워크 구현하기 - 정리 서블릿이란 Java로 HTTP 요청 및 응답을 처리하기 위한 표준이다. Jakarta Servlet defines a server-side API for handling HTTP requests and responses. 서블릿 표준은 인터페이스로 제공되며 이 구현은 서블릿 컨테이너 구현체인 Tomcat, Jetty, Undertow가 제공한다. Web Server vs WAS 짧게 말하자면, Web Server는 주로 정적인 컨텐츠를 처리하고, WAS는 주로 요청에 따라 응갑이 달라지는 동적인 컨텐츠를 처리한다. WAS는 일부 웹서버의 기능과 웹 컨테이너로 함께 구성된다. 앞 단의 웹 서버는 요청을 받아 웹 컨테이너로 넘겨주며, 웹 컨테이너는 이를 처리 후 다시 웹 서버로 전달한다. 자바에서는 이를 서..
제네릭 [10분 테코톡] 🌱 시드의 제네릭을 들으며 정리한 글입니다. 제네릭이란? 클래스나 메서드에서 사용할 내부 데이터 타입을 외부에서 지정하는 기법 제네릭 클래스 클래스 선언에 타입 매개변수가 쓰이면, 이를 제네릭 클래스라고 한다. 정의 class Box { private T ob; public void set(T o) { ob = o; } public T get() { return ob; } } 클래스이름 옆에 꺽쇠 괄호와 타입 매개변수를 지정해주면 된다. Box aBox = new Box(); Box의 타입 매개변수를 외부에서 지정한 것이다. 클래스 내부에서 사용하는 타입은 지정한 타입이 된다. 하지만 실제로 지정한 타입으로 변경되는 것은 아니다. (타입 이레이져) 제네릭을 사용하는 이유 class Ap..