반응형

전체 글 103

DB Replication

본 포스팅은 우아한 테크코스 테코톡 엔지의 DB Replication을 기반으로 작성된 포스팅입니다. https://www.youtube.com/watch?v=NPVJQz_YF2A&list=PLgXGHBqgT2TvpJ_p9L_yZKPifgdBOzdVH&index=10 목표 DB Replication에 대해 이해한다. DB Replication과정에 대해 이해한다. DB Replication topology에 대해 이해한다. 복제 과정 중 문제 발생 시 회복기법에 대한 이해를 한다. MySQL 8.0버전, InnoDB 기준 DB Replication이란? Replication: 복제 DB Replication: DB를 복제 그렇다면 하나만 복제하면 될텐데 왜 여러개의 DB를 복제하여 두는것일까?? 다음과..

AOP와 Spring AOP

본 포스팅은 우아한 테크코스 10분 테코톡 봄의 AOP와 Spring AOP를 기반으로 작성된 포스팅입니다. https://www.youtube.com/watch?v=hjDSKhyYK14&list=PLgXGHBqgT2TvpJ_p9L_yZKPifgdBOzdVH&index=9 AOP란? 흔히 Spring을 학습하다보면 AOP에 대해 공부하게 될텐데 이는 Spring에만 존재하는 개념이 아닙니다. 예시) 인터페이스 구현체 반복문으로 factorial 연산을 진행 이때 새로운 요구사항이 발생합니다. 위의 요구사항을 위해 System.out.print()를 사용합니다. 위 상태에서 새로운 요구사항이 또 등장합니다. RecursiveCalculator 구현 실행 시간 측정을 위해서 구현체들에 시간 측정 메소드를 ..

동기화(Synchronization) Mutex와 Semaphore

해당 포스팅은 우아한 테크코스 이브, 배카라의 Synchronization을 기반으로 작성되었습니다. https://www.youtube.com/watch?v=ImWjQ1Bxjrs&list=PLgXGHBqgT2TvpJ_p9L_yZKPifgdBOzdVH&index=8 사전 지식 - CPU 동작 방식 하나의 CPU에서 여러개의 프로세스 혹은 스레드를 실행하는 방식. 프로세스 동작 방식 프로세스의 경우 CPU의 자원이 있어야만 실행이 가능합니다. 여러개의 프로세스를 실행할 경우 Context Switch를 통해 CPU 자원을 번갈아 사용합니다. 해당 과정에서 코드 실행과 대기를 반복하는 방식으로 동작하게 됩니다. 컴퓨터에서는 이 과정이 빠르게 실행되기 때문에 사용자의 입장에서는 두개의 프로세스가 동시에 실행되..

웹 보안(SQL Injection, XSS)

해당 포스팅은 테코톡 바니의 웹 보안을 토대로 만들어졌습니다. https://www.youtube.com/watch?v=laQAQeuuJF4&list=PLgXGHBqgT2TvpJ_p9L_yZKPifgdBOzdVH&index=6 OWASP(Open Web Application Security Project) 비영리 보안 프로젝트 재단 웹 어플리케이션에 발생할 수 있는 취약점을 분석하고 연구해 공격 가능성과 기술적 영향을 기준으로 10개의 취약점 OWASP Top 10을 공개합니다. 보통 3~4년 주기로 발표가 됩니다. 10가지 항목중 A03: Injection만 알아보도록 하겠습니다. Injection이란? 신뢰할 수 없는 데이터가 명령어나 쿼리문의 일부분으로 전달될 때 발생. 공격자의 악의적인 데이터로 ..

GC(Garbage Collection)란?

본 포스팅은 우아한 테크코스 테코톡을 기반으로 작성되었습니다. https://www.youtube.com/watch?v=8JrciOSL3Gk&list=PLgXGHBqgT2TvpJ_p9L_yZKPifgdBOzdVH&index=4 GC란? 메모리 해제 방법 C언어에서는 객체를 할당 하고 해제하기 위해서는 free라는 메소드를 직접적으로 호출하여 메모리를 해제하는 과정이 필요했습니다. 하지만, JAVA에서는 해당 메소드가 존재하지 않습니다. JAVA에서는 메모리를 해제하는 과정을 누군가가 대신 해준다는 얘기입니다. 이러한 역할을 JAVA GC가 대신합니다. Garbage Collector 역할 Root set JVM내의 Heap 영역, Method Area, JNI 영역에 있는 지역 변수나 파라미터 그리고 정..

10주차 - Spring Cloud, Micro Service Architecture

Spring Cloud Project란? 24시간 가동할 수 있는 컴퓨터를 넉넉히 구비하는건 높은 비용을 요구합니다. 클라우드 서비스의 목적 서비스 제공을 위해 필요로 하는 자원을 1. 사용자가 원할 때 2. 즉시 제공할 수 있도록 Spring Cloud 프로젝트는 1차적인 목표로 분산 시스템 개발을 지원합니다. 일상적인 개발에서는 명확한 주소를 제공합니다.(url) datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/demo username: user password: password 클라우드 컴퓨팅으로 넘어오게 된다면 정확히 어디에 어떤 어플리케이션이 실행되는지 알 수 없습니다. Service Dis..

9주차 - RabbitMQ, Redis, WebSocket, WebClient

Message Broker Scale Out 기능을 여러 서비스에 걸쳐서 제공하는 MSA에서 필요로 하는 기법들 HTTP 요청과 응답의 구조로는 힘든 일이 있습니다. 그래서 중간에 Message Queue를 두게됩니다. Message Broker 미들웨어 Message를 주고받기 위해서 사용합니다. Redis In-Memory: 휘발성 데이터 NoSQL:SQL을 이용한 조회를 하지 않음 외부 캐시 또는 Message Broker로 활용 Redis 활용1 Redis 활용2 WebSocket 클라이언트와 서버가 자유롭게 메세지를 주고받기 위한 방법들이 연구가 되는데 그중 하나가 웹소켓이라고 생각하면 됩니다. 양방향 통신을 하기위해서 가장 흔하게 사용되는 통신 규약중 하나입니다. 에러가 발생을 할때 onOpe..

8주차 - Auth의 의미, OAuth2와 JWT

Authorization & Authentication Login - 한 개인이 자기 자신을 증명함으로서 특정 컴퓨터 시스템에 접근하는 행위 Auth -> Authorization & Authentication Authentication 사용자가 자신이 누구인지를 증명하는 과정 ex)로그인, 소셜 로그인 Authorization 사용자의 기능 사용 권한을 검증하는 과정 ex)권한 관리, 작성, 차단 등 로그인 과정 첫 요청 이후 HTTPS TLS 컴퓨터 네트워크 상에 정보를 안전하게 공유하기 위한 암호화 규칙 흔히 말하는 HTTPS는 HTTP에 TLS가 적용된 형태이다. 암호화 특정 규칙(알고리즘)을 가지고 평범한 데이터(평문)를 제3자가 확인 할 수 없도록 정보를 숨기는(암호문) 과정 대칭키 암호화 같..

JPA 영속성 컨텍스트, 플러시, 준영속 상태

JPA에서 가장 중요한 2가지 1. 객체와 관계형 데이터베이스 매핑하기 2. 영속성 컨텍스트 엔티티 매니저 팩토리와 엔티티 매니저 영속성 컨텍스트 JPA를 이해하는데 가장 중요한 용어 "엔티티를 영구 저장하는 환경"이라는 뜻 EntityManager.persist(entity); 엔티티 매니저? 영속성 컨텍스트? 영속성 컨텍스트는 논리적인 개념입니다. 눈에 보이지 않습니다. 엔티티 매니저를 통해서 영속성 컨텍스트에 접근합니다. 엔티티의 생명주기 비영속 (new/transient) 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 영속 (managed) 영속성 컨텍스트에 관리되는 상태 준영속 (detached) 영속성 컨텍스트에 저장되었다가 분리된 상태 삭제 (removed) 삭제된 상태 영속성 컨텍스트의 ..

7주차 - Spring Boot Tests, Spring Boot Actuator

Testing에 대하여 기존에는 Postman을 활용하여 산출물의 기능적 측면의 테스트를 하였습니다. Test를 위한 의존성 TDD(Test Driven Development) 테스트 주도 개발 실제 작동하는 코드 이전에 통과행할 테스트를 우선 개발하는 방식 상용 서비스 준비 여태까지의 작업은 기능을 제공하는데 집중했습니다. 서비스가 안정적으로 돌아가는데 필요한 기능 Spring Boot Actuator Prometheus

반응형