728x90 반응형 개발 관련 강의 정리79 [10분 테코톡] 🧲코일의 Web Socket 1. 웹 소켓이란? - 두 프로그램 간의 메시지를 교환하기 위한 통신 방법 중 하나 - W3C와 IETF에 의해 자리잡은 표준 프로토콜 중 하나 *W3C : 월드 와이드 웹을 위한 표준을 개발할고 장려하는 조직 *IETF : 인터넷의 운영, 관리, 개발에 대해 협의하고 프로토콜과 구조적이 시안들을 분석하는 인터넷 표준화 작업 기구 - 현재 인터넷 환경(HTML5)에서 많이 사용된다. - 웹 소켓을 지원하는 브라우저의 경우 웹 소켓 프로토콜을 지원 2. 웹 소켓의 특징 1) 양방향 통신(Full-Duplex) - 데이터 송수신을 동시에 처리할 수 있는 통신 방법 - 클라이언트와 서버가 서로에게 원할 때 데이터를 주고 받을 수 있다 - 통상적인 Http 통신은 Cilent가 요청을 보내는 경우에만 Serve.. 2023. 5. 8. [10분 테코톡] 라라, 제로의 데이터베이스 인덱스 정리 1. 인덱스란? 사전적 정의는 색인이다. *색인 : 쉽게 찾아볼 수 있도록 일정한 순서에 따라 놓은 목록을 뜻합 인데스는 원하는 값을 빠르게 찾는다! 에 초점이 있다. SELECT, INSERT, UPDATE, DELETE 중 '찾는다'에 해당하는 SELECT에 활용할 수 있을 것이다. 이메일로 정렬된 데이터 찾는 쿼리 SELECT * FROM member WHERE email = 'xxx@xxxx' [1] 인덱스가 적용된 대상을(email로 정렬된 데이터) [2] WHERE 절을 통해 검색 SELECT * FROM member [1] WHERE 절을 통해 검색x [2] 인덱스가 사용되지 않음 위 쿼리문은 WHERE 절로 검색하지 않아서 인덱스가 사용되지 않았다. 데이터베이스 인덱스란? 인덱스는 데이터베.. 2023. 5. 6. [10분 테코톡] 🐻큰곰의 Cache 정리 메모리 계층 구조 데이터를 저장하는 공간의 속도와 용량은 반비례 관계 속도가 빠른 메모리일수록 용량이 작음 용량이 큰 저장장치는 속도가 느림 둘 다 잡기에는 비용이 너무 많이 든다. 그래서 데이터 저장 공간은 속도와 용량에 따라 특성에 맞게 역할을 나누어서 사용한다. 데티어 저장 공간을 속도-용량 순서대로 쌓으면 마치 피라미드와 같은 형상이 나타난다(Memory hierarchy) 파레토의 법칙 데이터의 지역성의 원리 자주 쓰이는 데이터는 시간적 혹은 공간적으로 한 곳에 몰려 있을 가능성이 높다. (시간 지역성, 공간 지역성) cache (위키낱말사전 영어판) [명사] 나중에 필요할 수도 있는 무언가를 저장하였다가 신속하게 회수할 수 있는 보관 장소로, 어떤 식으로든 보호되거나 숨겨진다. CPU의 캐시 .. 2023. 5. 5. [10분 테코톡] 🌕제이의 Spring AOP 정리 서비스에 필요한 내용 : 비즈니스로직이라고 불리는 핵심 기능만 수행할 수 있으면 된다. 인프라 로직(시간 측정, 권한 측정 등) - 부가 기능 - 애플리케이션의 전 영역에서 나타나는 경우가 많아 중복코드를 만들어 낼 가능성 있다. - 비즈니스로직과 섞여있으면 비즈니스 로직을 이해하기가 어렵게 만든다. - 로깅, 트랜잭션, 권한검사, 성능 측정 등 하나의 관심사를 가지게 된다. 비즈니스 로직을 수행하는데 있어서 부가기능이 되는 인프라 로직의 중복이 횡단으로 나타나기 때문에 이것을 cross-cutting concern, 횡단 관심사라고 부른다. AOP (Aspect-Oriented Programming) 관점지향 프로그래밍 횡단관심에 따라 프로그래밍 한다고 생각하면 된다. AOP라는 말에서 OOP와 대치 .. 2023. 5. 4. [10분 테코톡] 🔥미르의 JDK Dynamic Proxy vs CGLIB Proxy 정리 Proxy? 클라이언트가 사용하려고 하는 대상을 실제 대상인 것처럼 위장해서 클라이언트의 요청을 받아주는 것 Proxy 기능 타깃과 같은 메서드를 구현하고 있다가 메서드가 호출되면 타깃 오브젝트로 위해준다. 지정한 요청에 대해 부가기능을 수행해준다. Proxy 동작 과정 클라이언트 → 프록시 → 타깃 Proxy 구현 과정 클라이언트 → 핵심기능 인터페이스 핵심기능 인터페이스 ↓ ↗ ↓ 부가기능 타깃 Proxy 문제점 매번 새로운 클래스를 정의해야 한다. 타깃의 인터페이스를 구현하고 위임하는 코드를 작성하기가 번거롭다. 부가기능 코드의 중복이 생긴다. JDK Dynamic Proxy란? 프록시 팩토리에 의해 런타임 시 다이나믹하게 만들어지는 오브젝트 프록시 팩토리에게 인터페이스 정보만 제공해주면 해당 인터.. 2023. 5. 3. [10분 테코톡] 🐻작은곰의 Spring Security 스프링시큐리티 인증과인가 를 제공하는 데 초점을 맞춘 프레임워크 스프링 시큐리티의 특징 1. 서블릿 API 통합 2. Spring Web MVC 선택적 통합 3. 인증과 권한 부여를 모두 포괄적이고 확장 가능한지원 4. 세션 고정, clickjacking, 사이트 간 요청 위조 등과 같은 공격으로부터 보호 ===> 웹 인증과 인가를 편하게 구현하기 위한 특징 *세션 고정 : 사용자 로그인 시 항상 일정하고 고정된 세션ID값을 사용하는 취약점 *clickjacking : 사용자가 클릭하고 있다고 인지하는 것과 다른 어떤 것을 클릭하게 속이는 악의적인 기법 *사이트 간 요청 위조 : csrf라고 부르며, 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격 기법 스프링.. 2023. 5. 2. [10분 테코톡] 👨💻히브리의 Sharding, Clustering, Replication 정리 Sharding, Clustering, Replication : 데이터베이스를 여러개로 만든다. Clustering DB서버가 죽으면 어떻하지? DB서버를 여러개 만들자! 1. active - active 스토리지 하나를 공유하기 때문에 병목이 생기 수 있다. 장점 시스템 전체가 정지하는 것을 방지할 수 있다. 성능 향상 단점 병목되는 상황에 대한 고려 필요 비용이 비싸다 2. active - stand by 장점 stand by를 실제로 운영하지 않아 비용 저렴 단점 Active가 죽었을 때 전환시 시간이 오래 걸린다.(수십 초 ~ 수십 분) Replication 저장된 데이터가 손실되면 어떻게 하지? 실제 데이터가 저장되는 저장소도 복제하자! 단순 백업 Slave에 백업하는 용도로 사용 부하 분산 S.. 2023. 5. 1. [10분 테코톡] 🐶 코기의 Servlet vs Spring Spring으로 Servlet을 다룬다는 것 1. 서블릿이란 서블릿 : 동적 페이지는 만드는데 사용되는 웹서버의 프로그램 개발자들이 서블릿을 사용하면 어떤 실질적인 이익이 있는가? HTTP 형태의 요청을 직접 파싱 vs HttpServletRequest의 메서드 호출 서블릿을 사용하면 비즈니스 로직에 더 집중할 수 있다. 서블릿을 사용하면 서비스 메서드만 재정의해서 처리방법을 지정하면 된다. 2. 서블릿 컨테이너와 서블릿 동작 방식 사용자 요청이 들어오면 서블릿 컨테이너는 해당 요청과 매핑된 서블릿을 찾는다. 서블릿 컨테이너가 어떤 서블릿 어떤 요청과 매핑되어 있는지 어떻게 알 수 있을까? 설정 파일에 정의되어 있다. /hello라는 요청이 들어오면 HelloServlet이란 서블릿으로 처리할 것 이다... 2023. 4. 28. 이전 1 ··· 6 7 8 9 10 다음 728x90 반응형