본문 바로가기

전체 글22

[네트워크] Jenkins CI/CD 자동화 보호되어 있는 글 입니다. 2023. 5. 21.
[네트워크] VPC 기본 개념 VPC 독립적인 가상의 네트워크 공간입니다. 서브넷 VPC에 할당된 IP 대역들을 잘 분할했다고 생각하면 된다. IP 주소들의 낭비를 막기 위해서이다. 이것을 서브넷팅이라고 하는 것 같다. 그리고 여기서 대부분 CIDER 계산식으로 표현을 하는 것 같다. 라우팅 서브넷 만약 통신을 하기 위해서는 어떻게 해야 할까? 그런 통신의 이정표의 역할을 하는 것이 라우팅과 라우팅 테이블이다. NACL / Security Group 개념 Security Group Network ACL 인스턴스 수준 적용 서브넷 수준 적용 In/Out traffic White list In/Out traffic White/Black list 상태저장(statefull) 상태 비저장(stateless) 모든 규칙 평가 적용 번호가 낮은.. 2023. 5. 8.
[네트워크] CIDR 주소 이해 1) 예시 192.168.10.0/24 위의 주소는 4 Octet(옥텟)으로 구성되어 있다. 위의 주소를 8비트로 변경하면 아래와 같다. 여기서 숫자 24는 24번째 이후의 모든 숫자 기준으로 최솟값과 최댓값이 IP 할당 범위라고 생각하면 된다. (즉 4Octet 의 최솟값과 최댓값의 사이가 할당 범위이다.) 11000000(1 Octet). 10101000(2 Octet). 00001010(3 Octet). 00000000 (~11111111) (4 Octet) 위의 범위를 10진수로 다시 변경하면 192.168.10.0~192.168.10.255 IP가 할당 주소 범위이다. 2) 예시 192.168.10.0/23 똑같이 위의 주소를 8비트로 변경하면 아래와 같다. 여기서는 숫자 23이다. 위의 배운 .. 2023. 5. 7.
[Etc] 네이밍 규칙(camel, pascal, snake, kebab) 유형 예시 설명 카멜 케이스(camelCase) camelCaseStyle 두번째 단어부터 앞글자 대문자 파스칼 케이스(PascalCase) PascalCaseStyle 첫번째 단어부터 앞글자 대문자 케밥 케이스(kebab-case) kebab-case-style 단어와 단어 사이 하이폰(-) 스네이크 케이스(snake_case) snake_case_style 단어와 단어 사이 언더바(_) 2023. 5. 7.
[Java] Enum, Const 이야기 Enum 이란? 상수의 묶음이라고 생각하면 좋을 것 같다. 상수라고 한다면 프로젝트에 다음과 같이 구현해서 많이 사용한다. private final static String ACCOUNT_TRANSFER = "계좌이체"; private final static String REMITTANCE = "무통장입금"; Enum은 서로 연관된 상수들을 다음과 같이 묶어서 사용하기 위해 사용을 한다. @Getter @AllArgsConstructor public enum PayType { ACCOUNT_TRANSFER("계좌이체", "1"), REMITTANCE("무통장입금", "2"), CARD("카드", "3"), POINT("포인트", "4"), COUPON("쿠폰", "5"); private String ti.. 2023. 5. 7.
[DB] 트랜잭션 격리수준(isolation level)이란? 트랜잭션의 격리 수준 동시에 여러 트랜잭션이 처리될 때, 특정 트랜잭션이 다른 트랜잭션에 영향을 미치도록 허용 여부를 결정하는 것이다. 트랜잭션 격리 수준의 필요성 트랜잭션이 다른 트랜잭션이 관여하지 못하도록 Locking이라는 개념이 등장하게 된다. 높은 수준의 Locking으로 수많은 트랜잭션들을 순서대로 처리할 시에 DB 성능은 떨어지게 된다. 반대로 성능을 위해 Locking의 수준을 낮춘다면 DB의 값을 보장하지 못한다. 그렇기 때문에 최대한 효율적인 Locking 방법을 선택해야 한다. 트랜잭션 격리 수준의 종류 READ UNCOMMITED (Level 0) COMMIT 되지 않은 상태의 UPDATE 된 값을 다른 트랜잭션에서 읽을 수 있다. 커밋이 되지 않고 만약 롤백이 된다면 UPDATE .. 2023. 5. 7.
[Etc] 배포 전략이란? (롤링, 블루/그린, 카나리) 배포 전략이란? 말 그대로 배포 방법을 말한다. 그렇다면 배포 전략이 탄생한 이유는 무엇일까? 그것은 모놀리틱 서비스 환경에서 마이크로 서비스 환경으로 바뀌면서 배포 주기가 짧아졌기 때문이다. 비즈니스 로직이 세분화된 마이크로 서비스로 환경이 바뀌게 되면서 개발자들은 비즈니스의 전문성이 강화되고, 해당 비즈니스의 마이크로 서비스만 빠르게 빌드하고 배포가 가능해졌다. 이러한 변화는 자연스럽게 DevOps팀의 배포 전략에도 발전을 일으켰다. 그래서 우리는 대표적인 배포 방식에 대해서 알아두면 좋을 것 같다. 롤링 배포 롤링 배포는 점진적으로 배포를 실시한다. 실제 배포 버전과 이전 버전이 공존할 수 있다. 배포 버전과 이전 버전이 공존할 수 있기 때문에 공존에 대한 대비책이 필요하다. 블루/그린 배포 Red.. 2023. 5. 7.
[Spring] 스프링(Spring) 핵심 기술 이야기 4부 - 빈의 스코프 스코프 싱글톤 프로토타입 (Request, Session, WebSocket ... 등) Proto.java @Component @Scope(value = "prototype") // @Scope(value = "prototype", proxyMode = ScopedProxyMode.TARGET_CLASS) public class Proto { @Autowired Single single; } Single.java @Component public class Single { @Autowired Proto proto; public Proto getProto() { return proto; } // @Autowired // private ObjectProvider proto; // // public Proto.. 2020. 10. 11.
[Spring] 스프링(Spring) 핵심 기술 이야기 3부 - @Component와 컴포넌트 스캔 이 글은 백기선 님의 스프링 프레임워크의 핵심 기술 강의를 듣고 복습 차원에서 적은 글입니다. 컴포넌트 스캔 주요 기능 스캔 위치 설정 필터 : 어떤 어노테이션을 스캔할지 또는 하지 않을지 설정이 가능하다. // XML 방식 // Java 방식 @SpringBootApplication public class Spring01Application { public static void main(String[] args) { SpringApplication.run(Spring01Application.class, args); } } // @SpringBootApplication @ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes .. 2020. 10. 7.