전체 글 75

[TIL] AWS 인스턴스 생성해보기1. (Public)

♣ Public 인스턴스(EC2)를 생성해 보자 1. VPC 생성하기 CIDR을 사용하여 사용할 IP 대역을 설정(/16으로 65,536개)실습을 위해 VPC만 생성되도록 적용 (VPC 등으로 하면 서브넷이랑 라우팅 테이블 같은 거 다 같이 생김)테넌시: 기본값 (Default) — 다른 AWS 고객과 하드웨어를 공유. 전용(Dedicated)은 단일 고객 전용 하드웨어라 비용이 큼 IPv6: 사용 안 함 (IPv6 CIDR 블록 없음)실습예시에서는 사용하지 않음. 왜인지 궁금해서 찾아봄 → IPv6는 IPv4(32비트, 약 43억 개)의 주소 고갈 문제를 해결하려고 만든 128비트 주소 체계 2. 서브넷 생성IPv4 서브넷 CIDR 블록: 10.0.0.0/24VPC 대역(10.0.0.0/16)을 쪼개서..

[TIL] 변경 된 AWS 신규 회원가입 프로젝트 생성 정리

1. AWS 회원 가입하기나는 구글을 통해 회원가입을 했다. 옛날에 가입했을 때는 계정이 생성되면 바로 콘솔로 들어가서 작업했는데, 이번엔 무슨 세션 선택 화면이 생겼다. (1번이 옛날 창, 2·3번이 지금 창) 그래서 세션 하나 만들어서 들어갔더니 서울 리전이 활성화가 안 됨.. 스트레스 알고 보니 가입 방식 자체가 바뀜예전 : 이메일 = AWS 계정 1개(루트) → 로그인하면 바로 콘솔현재: 구글로 가입하면 Builder ID(나)가 생기고, 그 밑에 조직(Organization)이 자동으로 만들어짐구글 (Builder ID, 구글 로그인)└─ 조직 ├─ Management Account ← 관리 계정 (결제·정책, 자동 생성) ├─ Identity Delegated Admin..

[TIL] 일반 네트워크 개념을 AWS로 옮겨 보기

수업일 : 261007 ♠ 네트워크 기본 구성에 대해 이해하기 1. CIDR (Classless Inter-Domain Routing)Classful 방식을 해결하기 위해 나온 방식으로 클래스 없이(Classless) 필요한 만큼만 딱 맞게 주소를 나누는 방식IP는 총 32비트를 갖고 있다표기법 : 1.0.0.0/24Base IP (주소 블록의 시작 주소) : 1.0.0.0프리픽스 길이 (앞에서부터 고정할 비트 수, 불변 영역) : /24Subnet Mask로 표현 한다면 255.255.255.0옛날 IP 할당 방식 Classful - IP 주소를 아래와 같이 A, B, C 세 가지 정해진 크기로만 나눠서 전달하였다 A : 고정 1개(/8: 앞 8비트 고정) → 사용가능 주소 약 1,677만개B : 고..

[TIL] ISP부터 내 맥북까지, 네트워크 흐름 이해해보기

수업일 : 261006 ♠ 네트워크 기본 구성에 대해 이해하기 1. ISP (Internet Service Provider)미국, 한국 전 세계 네트워크는 어떻게 연결되는가 → 실제로는 물리적 해저케이블로 연결되어 있고, 이 해저케이블을 한국 내 서울, 부산 등 지역으로 연결하는 케이블(지상케이블)을 ISP가 담당하여 제공한다.우리나라는 KT, SK브로드밴드 등이 존재한다. 즉 인터넷에 접속시켜 주는 회사를 지칭한다.2. MDF (Main Distribution Frame) 과 IDF(Intermediate Distribution Frame)MDF: 주 배선반. 외부(ISP)의 선이 건물 안으로 처음 들어오는 진입점이다. 외부망과 내부망의 경계는 MDF가 아니라 IGW(HGW)가 담당한다.IDF: 중간 ..

[위클리페이퍼] 261006_Docker

Q. 컨테이너 기술과 Docker를 명확히 구분하여 설명하세요. 컨테이너 기술이 Docker 이전에도 존재했던 개념임을 언급하고, Docker가 컨테이너 기술을 구현한 하나의 도구라는 관점에서 설명해주세요. 또한, Docker 외에 컨테이너 기술을 구현한 다른 도구의 예시를 들어보세요. A.컨테이너는 도커를 통해 생겨난 것이 아닌 1970년도 chroot라는 기술로부터 시작되었고 2000년대는 LXC(Linux Containers) 같은 도구가 존재했으며 Docker는 이 러한 오래된 개념을 더 쉽게 쓸 수 있도록 만든 도구이다.컨테이너 기술이란한개의 프로그램을 실행하기위한 작은 공간으로 내 컴퓨터 안에서는 여러개의 프로그램들이 있지만 컨테이너안에서는 현재 내컴퓨터와는 별개의 작은 컴퓨터처럼 독립적으로 ..

[TIIL] Docker가 동작하는 원리

Docker에서 사용되는 가상화 방식 알아보기1. 가상화 단위 : VM vs Container가상화 단위 : 격리된 별개의 실행환경 하나를 무엇까지 포함할 것인지를 기준으로 2가지로 나눠서 볼 수 있다. VM (Virtual Machine) : Guest OS + Bins/Libs + App를 제공 Container : OS는 호스트 OS의 커널을 가져다 사용하고 Bins/Libs + App를 제공 2. Docker 구동 방식은? Docker는 Container 방식이다. HostOS 위에 Docker 엔진을 구동시키고, 엔진 위에서 컨테이너를 실행시키는 형태이다. 3. 컨테이너를 실행하는 Docker 엔진이란?컨테이너를 만들고, 실행하고, 관리해주는 프로그램이다.엔진은 Docker CLI와 Dock..

[위클리페이퍼] 26.09.28 [검증 범위, Mockito]

Q. 애플리케이션의 각 계층에서 수행되는 입력값 검증의 범위와 책임을 어떻게 나눌 것인지에 대해 설명해 주세요. 특히 중복 검증을 피하면서도 안정성을 확보하는 방안과, 이와 관련된 트레이드오프에 대해 설명해 주세요. A. 답변1. 계층별 입력값 검증의 범위와 책임Controller외부에서 들어온 데이터가 올바른 형태인지 검증필수 값, 형식(이메일/길이/패턴), 타입@Valid + DTO의 @NotBlank, @Email, @SizeService비즈니스 규칙, DB 상태에 맞는지 검증이메일·전화번호 중복 가입 불가, 권한, 상태 전이 규칙직접 조회 후 예외, 필요하면 @ValidatedDomain(Entity)객체가 항상 유효한 상태를 유지하도록 불변식 보장가격 음수 불가, 수량 0 이상 등생성자·정적 ..

[TIL] ORM은 뭔데 Spring은 왜 JPA를 사용할까

수업일 : 26.09.04 ORM이란 무엇이고 JPA를 다들 사용하는 걸까ORM은 Object-Relational-Mapping으로, 객체와 릴레이션을 자동으로 매핑해 주는 도구의 한 형식이다. 이 도구를 이용해서 Java 객체로 매핑해서 사용할 수 있는 것이 바로 JPA(Java Persistence API)이다. 이번 글에서는 이 원리에 대해서 기본적인 것을 알아보겠다. ORM은 왜 나왔는가강사님이 그랬는데, 진짜 일 잘하는? 천재적인? 그런 개발자는 모든 걸 귀찮아하는 성격에서부터 나온다는 말을 해주셨던 것처럼, DB와 연결해서 커넥션을 가져와서 값을 넣고 다시 객체로 매핑하는 이 단계가 사실 DB 접근이 있는 곳이라면 모든 코드 영역에서 반복되는 보일러플레이트 코드였을 것이고, DB의 "관계형 모..

[TIL] JDBC와 Transaction 처리 - 스프링이 구현하는 방식

JDBC를 사용하여 Transaction을 구현해보자선언적 @Transactional을 사용하면 다른 구현없이 바로 트랜잭션을 사용할 수 있다. 하지만 귀찮은것을 해봐야 선언적 Transaction이 얼마나 고마운지 알것이기 때문에 구현과 설명을 해보려고한다. 기본적인 트랜잭션 개념은 아래 이전 포스트에서 확인가능하다. [TIL] DB 트랜잭션 개념트랜젝션에 대한 기본적인 원리에 대해서만 설명하고 JAVA와 관련된 기법들(전파, 예외처리 등등)은 JDBC를 진행할 때 정리트랜잭션이란하나의 논리적인 작업단위를 의미해서 이 단위 내의 작업soly-log.tistory.com JDBC를 통해 트랜잭션을 구현하는 점진적 방식유즈케이스 : 사용자를 생성하면 사용자를 환영하는 메시지를 함께 생성한다.Service..

[TIL] 반복되는 JDBC, JdbcTemplate으로 줄이기

스프링은 JDBC를 어떻게 추상화했는가. JdbcTemplate 정의JDBC API 사용 시 ① 접속 → ② 쿼리 → ③ 결과 처리라는 반복되는 패턴이 존재한다. 스프링은 이 반복 작업(커넥션 획득/해제, 예외 처리 등)을 대신 처리해 주는 JdbcTemplate 클래스를 제공한다.왜 스프링에서 이런 기능을 제공할까? 위에서 서술한 반복 패턴은 애플리케이션이 DB와 소통할 때마다 매번 발생하는 보일러플레이트다. 스프링은 개발자가 이 반복 작업에서 벗어나 SQL과 비즈니스 로직 작성에만 집중할 수 있도록 JdbcTemplate을 제공한다. 아래와 같이 전과 후 코드를 비교해 보자// Before public User findById(int userId) throws SQLException { ..

반응형