반응형 전체 글346 AWS EC2 - SAA LEVEL Public IP, Private IP, Elastic IP ip는 ipv4와 ipv6가 있다. ipv4를 주로 사용하지만 AWS는 ipv6도 지원한다. ipv6는 보통 사물 인터넷에서 많이 쓰인다. Public IP를 공용 ip라 부르고, Private IP는 사설 ip, Elastic IP는 탄력적 ip라고 부르겠다. 공용 ip가 있다면 인터넷 전역에서 액세스가 가능하다. 전체 웹에서 유니크하기 때문이다. 구글에 공용 ip를 검색하면 지리적 위치 또한 쉽게 찾을 수 있다. 사설 ip는 사설 내트워크 내에서만 접근이 가능하다. 전체 웹에서 유니크하지 않고, 사설 망에서만 유니크하면 된다. NAT 장치와 프록시 역할을 할 인터넷 게이트웨이를 통해 인터넷에 연결된다. 지정된 일정 ip 범위에서 사설 ip를.. Cloud/AWS 2023. 6. 20. AWS EC2 기초 EC2 EC2는 정말 인기 있는 AWS 서비스이며, Elastic Compute Cloud의 약어다. EC2는 하나의 서비스가 아닌 다음과 같은 많은 것을 포함하고 있다. 임대 가능한 VM 데이터를 가상 드라이브 EBS 볼륨에 저장 가능 Elastic Load Balancer(ELB)로 분산 가능 Auto Scaling Group를 사용해 서비스 확장 가능 EC2의 기초를 아는 것이 클라우드 동작 방식을 이해할 때 필수적이다. 클라우드는 언제든 컴퓨터를 대여할 수 있는데 대표적인 예시가 EC2이다. EC2 설정 옵션과 크기 EC2를 처음 생성할 때 다양한 설정 옵션(운영체제, RAM, storage, 방화벽 등)이 존재한다. EC2를 생성할 때 리눅스, 윈도우, 맥을 운영체제로 선택할 수 있다. 생성할 .. Cloud/AWS 2023. 6. 19. AWS IAM IAM Identity And Access Management의 약어다. AWS 계정과 관련된 권한을 제어하고, 사용자를 관리하는 기능을 제공하는 보안 서비스이며, AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스다. 사용자를 생성하고 배치하므로 글로벌 서비스에 해당한다. 처음 계정을 생성하면 루트 사용자가 배치되고 이를 기본으로 사용한다. 루트 계정은 계정(사용자)을 생성할 때만 사용해야 한다. 루트 계정을 직접적으로 사용하면 절대 안된다. 그룹과 사용자 IAM으로 사용자를 생성하고, 하나의 사용자는 조직 내의 한 사람에 해당한다. 다양한 사용자들을 그룹으로 묶으며, 그룹에 포함되지 않는 사용자도 존재한다. 한명의 사용자는 여러 그룹에 포함될 수 있다. 그룹은 그룹에 포함될 수 없다. .. Cloud/AWS 2023. 6. 18. AWS 기초 8월 안에 SAA 자격증을 따려서 본격적으로 공부를 시작했습니다. 차근차근 열심히 해보겠습니다. 리전 (Region) 리전은 IDC(Internet Data Center)의 집합이다. 다수의 가용 영역으로 구성된다. 리전은 국가나 지역을 식별할 수 있는 이름을 붙인다. 보통 대도시에 리전이 존재한다. Region은 완전히 분리되어 있다. AWS 사용자는 각 Region마다 Region 서비스를 사용해 클라우드 환경을 구축할 수 있다. 법률 준수(Compliance), 지연 시간(Proximity), 사용 가능한 AWS 서비스, 가격을 고려해 리전을 선택해야한다. 가용 영역(AZ, Availability Zone) 한 리전 당 최소 2개, 최대 6개다. 보통 3개라고 한다. 인터넷 데이터 센터의 역할을 한.. Cloud/AWS 2023. 6. 17. 낙관적 락, 비관적 락, 네임드 락 JPA는 데이터베이스 트랜잭션 격리 수준을 READ COMMITTED 정도로 가정한다. 만약 일부 로직에 더 높은 격리 수준이 필요하면 낙관적 락과 비관적 락 중 하나를 사용하면 된다. 추가적으로 네임드 락에 대해서도 다시 정리해보겠다. 낙관적 락 (OptimisticLock) 낙관적 락은 이름 그대로 트랜잭션 대부분은 충돌이 발생하지 않는다고 낙관적으로 가정하는 말이다. DB가 제공하는 락 기능을 사용하는 것이 아니라 JPA가 제공하는 버전 관리 기능을 사용한다. 즉 애플리케이션이 제공하는 락이다. 낙관적 락은 트랜잭션을 커밋하기 전까지는 트랜잭션의 충돌을 알 수 없다는 특징이 있다. 충돌이 빈번하지 않을 때 사용하는 것이 좋다. 충돌이 빈번하다면 비관적 락을 사용하는 것이 성능상 이점이 있다. 실패했.. 개발/JPA 2023. 6. 16. Spring Bean으로 등록된 EntityManager 자바 동적 프록시 기술을 알고 읽으시는 게 좋습니다!!! JPA를 처음에 배우면 엔티티 매니저는 여러 스레드가 동시에 접근하므로 스레드 간 공유하면 절대 안된다고 학습한다. 그러나 스프링 부트 애플리케이션을 돌려보면 처음에 엔티티 매니저가 스프링 빈으로 등록되는 것을 확인할 수 있다. '스프링 부트 자동 구성을 통해 엔티티 매니저가 스프링 빈으로 등록, 즉 싱글톤으로 사용이 되는 거 같아' 위와 같은 의문점이 들었고, 이에 관련해서 구글에 찾아보기 시작했다. 결론을 말하면 스프링 빈으로 등록되는 것은 엔티티 매니저 가짜 객체고 실제 애플리케이션에서 로직이 수행될 때 진짜 엔티티 매니저가 사용된다는 것이다. 이러면 쓰레드 세이프하다고 말할 수 있다. 단순히 그렇구나 하고 넘어간 것을 오늘은 눈으로 확인해보.. 개발/JPA 2023. 5. 12. SQL 처리 과정과 I/O SQL 파싱과 최적화 프로시저란 일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합이다. 프로시저를 만들어주는 DBMS 내부 엔진이 바로 SQL 옵티마이저다. DBMS 내부에서 프로시저를 작성하고 컴파일해서 실행 가능한 상태로 만드는 전 과정을 'SQL 최적화'라고 한다. SQL 최적화 최적화 순서 과정은 아래와 같다. 1. SQL 파싱 SQL 파싱을 요약하면 아래와 같다. 파싱 트리 생성: SQL 문을 이루는 개별 구성요소를 분석해서 파싱 트리를 생성한다. Syntax 체크: 문법적 오류가 없는지 확인한다. Semantic 체크: 의미상 오류가 없는지 확인한다. 예시로는 권한이 있는지 확인. 2. SQL 최적화 SQL 옵티마이저는 미리 수집한 시스템 및 오브젝트 통계정보를 바탕으로 다양한 실.. Database/SQL 튜닝 2023. 4. 27. 카프카 커넥트란? 카프카 커넥트란? 카프카 커넥트는 카프카 오픈소스에 포함된 툴 중 하나로 데이터 파이프라인 생성 시 반복 작업을 줄이고 효율적인 전송을 이루기 위한 애플리케이션이다. 카프카 커넥트는 커넥트와 커넥터로 이루어진다. 커넥트는 커넥터를 동작하도록 실행해주는 프로세스다. 파이프 라인을 생성할 때 프로듀서, 컨슈머 애플리케이션을 만드는 것은 좋은 방법이지만 반복적인 파이프라인 생성 작업이 있을 때는 매번 프로듀서, 컨슈머 애플리케이션을 개발하고 배포, 운영해야 하기 때문에 비효율적이다. 반면, 커넥트는 특정한 작업 형태를 템플릿으로 만들어 놓은 커넥터를 실행함으로써 반복 작업을 줄일 수 있다. 파이프라인 생성 시 자주반복되는 값들(토픽 이름, 파일 이름, 테이블 이름 등)을 파라미터로 받는 커넥터를 코드로 작성하.. 대외활동/카엔프 SW 아카데미 2023. 3. 31. 카프카 스트림즈 카프카 스트림즈란? 카프카 스트림즈는 토픽에 적재된 데이터를 상태기반 또는 비상태기반으로 실시간 변환하여 다른 토픽에 적재하는 자바 라이브러리다. 스트림즈는 카프카에서 공식적으로 지원하는 라이브러리다. 자바 기반 스트림즈 애플리케이션은 카프카 클러스터와 완벽하게 호환되면서 스트림 처리에 필요한 편리한 기능들(신규 토픽 생성, 상태 저장, 데이터 조인 등)을 제공한다. 비상태 기반 처리 필터링이나 데이터를 변환하는 처리다. 데이터가 들어오는 즉시 처리하고 바로 프로듀스한다. 따라서 유실이나 중복이 발생할 염려가 적고 개발이 쉽다. 상태 기반 처리 상태 기반 처리는 직접 구현이 너무 어렵다. 윈도우, 조인, 취합과 같은 처리는 이전 받았던 데이터를 프로세스가 메모리에 저장하고 있으면서 다음 데이터를 참조해 .. 대외활동/카엔프 SW 아카데미 2023. 3. 30. 카프카 기초 카프카란? 아파치 카프카(Apache Kafka)는 분산 스트리밍 플랫폼으로, 대용량의 실시간 데이터 스트림을 처리하기 위해 설계되었다. 카프카는 대량의 데이터를 안정적이고 빠르게 처리할 수 있으며, 대규모 분산 시스템에서 확장성과 내결함성을 보장한다. 소스애플리케이션과 타겟 애플리케이션의 결합도를 낮추기 위해 등장했다. 카프카 토픽 카프카에서 데이터가 들어가는 공간을 토픽이라고 부른다. 토픽은 여러 개를 생성할 수 있다. 목적에 따라 이름을 명확하게 적어야 유지보수가 편리하다. 데이터베이스 테이블과 파일 시스템의 파일과 유사하다. 카프카 프로듀서가 토픽에 데이터를 넣고, 카프카 컨슈머가 데이터를 가져간다. 하나의 토픽은 여러 개의 파티션으로 구성된다. 파티션 파티션은 0번부터 시작한다. 파티션은 큐와 .. 대외활동/카엔프 SW 아카데미 2023. 3. 29. OAuth2 OAuth2 위키피디아의 OAuth 정의는 다음과 같다. 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다. OAuth는 Open Authorization의 약어다. OAuth는 인터넷 프로토콜, 즉 통신을 하기 위한 약속이다. 권한 부여 프레임워크라고 부르는 경우가 많다. 타사 웹 사이트나 웹이 리소스에 접근할 수 있게 허용하는 것이 주 목적이다. 그리고 프로토콜이므로 OAuth2 흐름 정의와 함께 다른 플랫폼, 도구, 언어를 적용할 수 있다. OAuth2는 OAuth보다 업그레이드 된 버전이라고 생각하면 되겠다. OAuth2 인증 아키텍처의 구성 요소.. 개발/Spring Security 2023. 3. 20. 스프링 부트 액츄에이터 액츄에이터 Actuator 스프링 부트가 제공하는 액츄에이터는 지표, 추적, 감사, 모니터링과 같은 프로덕션 준비 기능을 매우 편리하게 사용할 수 있는 다양한 편의 기능을 제공한다. 나아가서 다양한 모니터링 시스템과 매우 쉽게 연동할 수 있는 기능도 제공한다. 액츄에이터 의존성 추가 아래 의존성을 build.gradle에 추가해야지 액츄에이터를 사용할 수 있다. implementation 'org.springframework.boot:spring-boot-starter-actuator' // actuator 추가 액츄에이터 기능 사용 액추에이터를 사용하려면 애플리케이션의 main() 메서드를 실행시키고 /actuator 경로로 접근해야 한다. /actuator 경로를 통해 액츄에이터가 제공하는 수 많은 .. 개발/Spring Boot 2023. 3. 4. 이전 1 ··· 4 5 6 7 8 9 10 ··· 29 다음 반응형