전체 글147 [AWS] EC2 & RDS 시작하기 리전 설정하기우측 상단에서 리전을 선택해준다.AWS 콘솔에서 EC2를 선택하고 인스턴스 시작을 누른다.익숙한 Ubuntu 를 선택했다. 키 페어키 페어란 EC2 인스턴스에 **안전하게 접속하기 위한 암호 키의 쌍(SSH 키)**이다.AWS에 저장되는 공개 키와 사용자 환경에 저장되는 개인 키, 두 개의 키로 구성된다.인스턴스에 연결된 공개 키와 사용자의 개인 키 조합이 일치하는 경우에만 인스턴스에 접속할 수 있다.보안 그룹보안 그룹은 AWS에서 기본적으로 사용되는 네트워크 보안 기술이다.보안 그룹을 통해 EC2 Instance로 들어오거나(Inbound) 나가는(Outbound) 트래픽들을 직접 설정하여 제어할 수 있다.추후에 설정을 해주자.탄력적 IP 설정AWS의 EC2는 재실행 될 때마다 public.. 2024. 10. 24. [Redis] Redis 와 RDB, AOF 대해 알아보자 가상 면접 사례로 배우는 대규모 시스템 설계 기초 를 읽고 스터디를 진행하면서 프로젝트를 진행하다Redis에 대해 더 정리를 하게 되었습니다.RedisRedis는 메모리 기반의 키-값 저장소이다.우리가 알고 있는 일반적인 데이터베이스와 다르게 인메모리 데이터베이스로 속도가 매우 빠르고다양한 데이터 구조를 지원한다.주요 특징속도: 인메모리 데이터베이스로 속도가 매우 빠르다. (디스크 I/O가 없다)데이터 구조: 다양한 데이터 구조를 지원한다.영속성: 메모리에 데이터가 저장되지만 디스크에 데이터를 주기적으로 저장을 해서 데이터의 손실을 방지한다.Java에서 HashMap과 뭐가 다른걸까?둘다 key-value 형식이며 메모리에 저장한다. 디스크보다 빨리 접근 할 수 있다. redis의 장점이자 둘의 차이점은.. 2024. 10. 22. [Java] HashMap의 Thread-Safe 와 TreeMap, LinkedHashMap, EntrySet 정리 HashMapMap 이란?Map은 리스트나 배열처럼 순차적으로 해당 요소 값을 구하지 않고 key를 통해 value를 얻을 수 있는 자료 구조이다.특징key는 중복을 허용하지 않는다.value는 중복이 가능하다put 과 getMap은 put과 get을 통해 insert 와 read가 가능하다HashMap map = new HashMap();map.put("people", "사람");map.put("baseball", "야구");String str = map.get("people"); // "사람"containsKey (boolean)Map에 해당 key가 있는지 조사하여 결과값을 리턴한다.boolean hasKey = map.containsKey("people");removeMap의 항목을 삭제할 수 있.. 2024. 10. 7. [JAVA] Virtual Thread (JDK 21) Virtual Thread프로세스실행중인 프로그램스레드프로세스 내에서 실행되는 실행 흐름 (작업 단위)Virtual Thread2023년 JDK21에 추가된 경량 스레드이다. OS 스레드를 그대로 사용하지 않고 JVM 내부 스케줄링을 통해 수백만개의 스레드 사용이 가능하다.장점생성 및 스케줄링 비용이 저렴하다.Nonblocking I/O를 지원한다.기존 스레드를 상속하여 코드가 호환된다.전통적인 Java의 ThreadJava에서는 OS Thread를 Wrapping 해서 사용한다.(Platform Thread)OS Thread는 생성 개수가 제한적이고, 생성, 유지 비용이 매우 비싸다.이러한 단점을 해결하기 위해 Thread Pool을 사용한다. (생성 비용이 비싸서)전통적인 Java의 Thread를 사.. 2024. 9. 3. CS스터디 - 4주차 Network 4주차(8/14) - NetworkIP 주소는 무엇이며, 어떤 기능을 하고 있나요?IP란ip란 Internet protocol의 약자로 인터넷을 주고 받을때 사용되는 통신규약으로서 네트워크라고 하면 단골로 등장하는 OSI 7계층중 3번째 layer이다.IP는 데이터를 패킷으로 나누어 전송하고, 받는쪽에서는 해당 패킷들을 다시 조립하여 원래의 데이터로 변화한다.IP주소란?IP는 프로토콜이고, IP 주소는 IP 통신을 하기 위해 각 기기들을 구분하는 주소이다.고정 IP 주소기기에 할당된 IP 주소가 변하지 않고 항상 동일한 주소를 가진다.웹 서버, 이메일 서버 등 인터넷 서비스를 제공하는 기기에 사용된다.(안정적인 통신)유동 IP 주소기기에 할당된 IP 주소가 일정 시간이 지나면 변경된다.유동 IP 주소는 .. 2024. 8. 15. [Spring] CS 스터디 - 3주차 Spring & Network 3주차(8/7) - Spring & NetworkAOP💡 AOP란? (Aspect Oriented Programing) 관점 지향 프로그래밍을 의미한다. (코드의 중복이 횡단으로 이루어지는 경우) 로깅, 보안, 트랜잭션 관리, 등과 같은 공통적인 관심사를 모듈화 하여 코드 중복을 줄일수 있다.Aspect(관점) - 공통 관심사항을 정의하는 모듈이다.Advice(조언) - Aspect의 동작을 정의, 스프링에서는 5가지 종류의 Advice를 지원한다.Pointcut (포인트컷) - 어떤 메서드가 어떤 Advice를 받을지 결정Join Point(조인 포인트) - Advice가 적용될 수 있는 위치Weaving(위빙) - 대상 코드에 Aspect를 적용하는것, 스프링에서는 컴파일, 클래스 로딩, 런타임 시.. 2024. 8. 11. [Java] CS 스터디 - 2주차 (Java & Spring) Java의 GC💡 Garbage Collection이란? Java의 메모리 관리 방법으로 JVM의 Heap 영역에 동적으로 할당된 메모리중 필요 없어진 메모리 객체를 자동으로, 주기적으로 제거 해주는 프로세스 이다.GC의 장단점장점메모리 누수를 방지 할 수 있다.이미 해제한 메모리를 다시 해체하거나, 해제한 메모리에 다시 접근하는 등의 오류를 방지 할 수 있다.단점개발자 입장에서 메모리가 언제 해제 되는지 알 수 가 없다.오버헤드로 인한 성능 저하가 발생 할 수 있다.GC의 대상그렇다면 어떤 객체가 GC의 대상이 될까?객체는 현재 참조 되고 있는 Reachable 객체와 참조 되고 있지 않은 UnReachable 객체로 나누어 진다. GC는 이러한 UnReachable 객체들을 주기적으로 제거해준다.G.. 2024. 8. 11. [Java] CS 스터디 - 1주차 (Java & Spring) 1주차(7/24) - Java & SpringJVM💡 JVM 이란? Java Virtual Machine 이다. (자바 가상 머신) Java 프로그램이 실행될 때 사용되는 가상 컴퓨터 이다.Java 프로그램 실행 과정자바 소스 코드(.java)를 작성한다.자바 컴파일러(javac)를 통해 자바 소스 코드(.java)를 자바 바이트 코드(.class)로 컴파일 한다.JVM의 Class Loader는 동적 로딩에 필요한 클래스들을 로딩 및 링크하여 Runtime Data Area에 올린다.Runtime Data Area에 로딩된 바이트 코드를 Execution Engine을 통해 해석된다.변환된 class 파일을 JVM에서 JLT와 인터프리터를 이용해서 네이티브 코드로 변홚하여 실행한다JVM 구성 요소Cl.. 2024. 8. 2. [Spring] 선착순 쿠폰 동시성 문제 해결하기 (메세지큐 적용) 동시성 문제란?동일한 하나의 데이터에 두개이상의 프로세스나 스레드가 동시에 같은 데이터에 접근 할때 빌생할 수 있는 문제점을 의미한다. 동시성 문제 발생public void assignCoupon(CreateCouponReq createCouponReq) { // 쿠폰 발급 로직 try{ // 1. 존재하는 쿠폰 이벤트 인지 확인 if(!mapper.isValidEvent(createCouponReq.getCouponGroupId())){ log.error("[error] 쿠폰 발급 실패 - 존재하지 않는 이벤트입니다."); throw new RuntimeException("존재하지 않는.. 2024. 6. 26. 이전 1 2 3 4 5 6 ··· 17 다음