본문 바로가기

우아한테크코스/테코톡

(11)
JCF [10분 테코톡] ⚾️ 제이온의 JCF을 들으며 정리한 글입니다. JCF란? Java Collections Framework 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합 데이터를 저장하는 자료구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해놓은 것 도입 배경 JCF가 도입되기 이전에는 데이터를 그룹핑하는 방법으로는 Array, Vector, Hashtable 등이 있었다. 이 컬렉션들의 사용 목적이 같더라도 각각의 컬렉션에서 사용하는 문법이 다른 문제가 있었다. 때문에 공통 인터페이스가 필요하다고 판단하였고, 이로인해 탄생한 것이 JCF이다. JCF의 계층 구조 크게 Collection 인터페이스와 Map 인터페이스로 나눌 수 있다. Collecti..
DB Replication [10분 테코톡] ✌️ 영이의 Replication을 들으며 정리한 글입니다.. Replication이란? 한 서버에서 다른 서버로 데이터를 동기화하는 것 원본 데이터를 가지는 서버를 Source 서버 복제된 데이터를 가지는 서버를 Replica 서버 Why? 부하를 줄이기 위해서 (Scale-out) 갑자기 늘어나는 트래픽을 대응하는데 유연한 구조 데이터 백업 레플리카를 안하더라도 백업을 해야함 백업 과정은 실제 실행중인 쿼리들에 영향을 줄 수 있음 레플리카 서버에서 데이터 백업을 실행하여 소스 서버에서 백업 시 발생하는 문제 해결 데이터 분석 분석용 쿼리는 대량의 데이터를 조회하고, 쿼리 자체가 무거운 경우가 많음 소스 서버에서 하게 되면 문제가 될 수 있으니, 레플리카 서버에서 분석용 쿼리만 전용으..
인덱싱 [10분 테코톡] 🍫 찰리의 인덱싱을 들으며 정리한 글입니다. Index란? 보통 배열의 위치를 인덱스라고 한다. 결국 데이터가 있는 위치를 특징할 수 있는 정보 ! 단어의 뜻 색인 - 어떤 것을 뒤져서 찾아내거나 필요한 정보를 밝힘 데이터베이스의 Index 사용 목적 대용량 데이터에서 원하는 데이터를 빠르게 조회하기 위해서이다. 결국 SELECT 쿼리의 대용량 데이터 조회 시 조회문 조회 속도를 향상시키기 위함이다. 하지만 INSERT, UPDATE, DELETE 시 성능을 조금 희생해야 한다. 혹은 대용량이 아니면 조회 시 성능 향상이 없나 ? 있긴 하지만 큰 효과는 볼 수 없을 것이다. Index의 작성 / 삭제 Index도 하나의 데이터베이스 객체이다. Oracle, DB2 등에서는 스키마 객체,..
제네릭 [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..
Servlet과 Spring 2021-06-23글 [10분 테코톡] 🐶 코기의 Servlet vs Spring을 들으며 정리한 글입니다. 서블릿이란 처음 웹 서버는 정적인 페이지만 만들 수 있었음 웹서버에 프로그램을 붙여 동적인 페이지를 생성하기 시작 서블릿이 이 프로그램 중 하나 서블릿은 동적인 페이지를 만드는 프로그램 중 하나이다. 서블릿으로 요청을 처리하는 방법 서블릿은 이런 HTTP 요청과 응답을 좀 더 쉽게 다룰 수 있는 메서드(기능)을 제공 개발자들이 집중해야하는 비즈니스 로직에 집중할 수 있음 service() : 요청을 처리할 때 수행하는 메서드 개발자가 처리하고 싶은doXxx()를 재정의해주자! 서비스 메서드만 재정의해서 처리 방법을 지정 서블릿 컨테이너와 서블릿이 호출되는 과정 서블릿 컨테이너는 서블릿을 관리하는 ..
CORS 2021-06-16글 [10분 테코톡] 🌳 나봄의 CORS을 들으며 정리한 글입니다. 배경 지식 SOP(Same Origin Policy) 다른 출처의 리소스를 사용하는 것에 제한하는 보안 방식 왜 SOP? CSRF Attack 때문! 사용자는 인증 토큰을 가지고 있는 상태 해커가 만든 주소로 이동하는데, 여기다 해커는 악의적인 스크립트를 심음 해커는 인증 토큰을 가지고 악의적인 스크립트를 실행할 수 있음 만약 송금이나 민감한 정보를 건드릴 시 굉장히 위험 여기서 SOP가 위력을 발휘 웹사이트 입장에서는 자신과 다른 출처를 가지기 때문에 위 요청은 받을 수 없다고 판단 출처(Origin)란? Protocol, Host, Port 세가지가 같아야 같은 출처라고 판단 참고로 인터넷 익스플로어는 출처판단에 P..
Cache 2021-05-31글 [10분 테코톡] 🐻큰곰의 Cache을 들으며 정리한 글입니다. 메모리 계층 구조 데이터를 저장하는 공간의 속도와 용량은 반비례 빠를수록 가격이 올라간다. 용량이 큰 저장장치는 속도가 느림 둘 다 잡기엔 비용이 너무 많이 듦 파레토의 법칙 원인 중 상위 20%가 전체 결과의 80%를 만든다. 많이 쓰는 20%가 80%의 효율을 차지한다. 데이터 지역성의 원리 자주 쓰는 데이터는 시간적 혹은 공간적으로 한 곳에 몰려있을 가능성이 높음 시간 지역성 for문에 조건 변수를 선언하면 해당 변수는 for문이 끝나기 전까지 계속 쓰일 확률이 높음 공간 지역성 for문에서 어떤 배열에 접근했을 때 해당 배열이 위치한 메모리 공간의 내용은 for문이 끝나기 전까지 계속 쓰일 확률이 높음 순차 지역..
MVC 패턴 2021-05-26글 [10분 테코톡] 🧀 제리의 MVC 패턴, [10분 테코톡] 👩🏻‍💻👨🏻‍💻해리&션의 MVC 패턴을 들으며 정리한 글입니다. MVC 패턴 디자인 패턴 Model View Controller 3가지로 구분한 패턴 유지보수가 편해지는 코드 구성 방식 웹 애플리케이션 아키텍쳐의 역사 (JSP로 구성한) 웹 애플리케이션의 아키텍쳐 : 모델1 구성 : JSP + JavaBeand(Service) 뷰와 로직이 섞임 장점 : 구조가 단순 단점 : 출력과 로직 코드가 섞여 유지보수가 어렵다. (JSP로 구성한) 웹 애플리케이션의 아키텍쳐 : 모델2 구성 : JavaBean(Service) + JSP + 서블릿 MVC 구조 장점 : 뷰와 로직이 분리되어 유지보수가 쉽다. 단점 : 복잡하므로 작은 프..