컬렉션이란 여러 데이터의 집합을 의미한다.이러한 컬렉션을 다루는데에 있어 편리한 메서드들을 미리 정의해 놓은 것을 컬렉션 프레임워크라고 한다. 컬렉션 프레임워크는 주요 인터페이스로 List, Set, Map을 제공한다. List데이터의 순서가 유지되며, 중복 저장이 가능한 컬렉션을 구현하는데 사용된다.[Java] List 인터페이스List 인터페이스 배열과 같이 객체를 일렬로 늘어놓은 구조를 가지고 있다. 객체를 저장하면 자동으로 인덱스가 부여되고, 인덱스로 객체를 검색, 추가, 삭제할 수 있는 등의 여러 기능을 제공한kangkangsulae.tistory.com Set데이터의 순서가 유지되지 않으며, 중복 저장이 불가능한 컬렉션을 구현하는데 사용된다.[Java] Set 인터페이스Set 인터페이스 수학에..
Event Driven Architecture 정의 사건을 기반으로 한 아키텍처 설계 분산 아키텍처 환경에서 상호 간 결합도를 낮추기 위해서 비동기 방식으로 메세지를 전달하는 아키텍처 패턴 키보드와 마우스의 조작이 발생하면, 이벤트(데이터 CUD)가 발생할 때 마다 새로운 관계를 맺기 위해 또 다른 사용자 또는 또 다른 시스템에 변경을 발생시키는 것 MSA가 적용된 시스템에서 이벤트 발생 시 해당 이벤트 로그를 보관하고 이를 기반으로 동작하며, 비동기 통신을 통해 시스템 내 통합을 수행하는 아키텍처 * 분산 아키텍처 : * 이벤트 보관 : 현재의 데이터는 상태 변경의 누적으로 보관된 이벤트를 바탕으로 장애 발생 또는 특정 요구사항에 따라 지정된 시점으로 복원을 수행한다. * 비동기 통신 : 메세징 프로토..
MSA 정의 Micro Service Architecture의 약어 애플리케이션 개발을 위한 아키텍처 대규모 애플리케이션을 각각 담당 영역을 가진 소규모의 독립적인 구성요소로 구분할 수 있다. 구성 요소는 완전히 독립적으로 배포가 가능하고, 다른 기술 스택(개발 언어, 데이터베이스 등)이 사용 가능한 단일 사업 영역에 초점을 둔다. MSA 등장배경 Monolithic Architecture의 한계 1. 부분장애가 서비스의 장애로 확대될 수 있다. 2. 사용되지 않는 다른 모든 서비스가 Scale-out되어야 하기 때문에 부분 Scale-out이 어렵다. 3. 여러 컴포넌트가 하나의 서비스에 강하게 결합되어 있기 때문에 수정에 대한 영향도 파악이 힘들다. 4. 배포시간이 오래 걸린다. 5. Framewor..
리눅스 컨테이너 리눅스 커널을 공유하면서 프로세스를 격리된 환경에서 실행하는 기술이다. 이는 리눅스 네임 스페이스, 컨트롤 그룹, 루트 디렉토리 격리 등의 커널 기능을 활용하여 격리되어 실행되기 때문에 호스트 머신에서는 프로세스로 인식하지만 컨테이너 관점에서는 마치 독립적인 환경인것처럼 보인다. 하드웨어를 가상화하는 가상 머신과 달리 하이퍼바이저를 이용하여 여러개의 운영체제를 하나의 호스트에서 생성해서 사용하고 커널을 공유하는 방식이기 때문에 실행 속도가 빠르고, 성능상의 손실이 거의 없다. 리눅스 컨테이너의 종류 시스템 컨테이너 : 일반적으로 리눅스 init 프로세스 등을 사용해서 다수의 프로세스가 같은 환경을 공유하는 것을 목표로 한다. 대표적인 런타임으로는 LXC, LCD가 있다. 애플리케이션 컨테..
MFA란? Multi-Factor Authentication 약어로, 사용자 이름과 암호 외에 보안을 강화하는 수단 AWS 계정 및 계정에 속하는 개별 IAM 사용자에 대해 AWS MFA를 활성화할 수 있다. 루트 계정에는 MFA를 구성하여 AWS 리소스를 보호하는 것이 좋다. 루트 계정에 MFA 적용하기 루트 계정에 MFA를 활성화하기 위해 보안 토큰 기반의 가상 MFA 어플리케이션(Google Authenticator)를 사용하였다. 루트 계정에 로그인하여 진행한다. 1. IAM 서비스 대시보드에 루트 사용자에 대해 [MFA 추가] -> [MFA 할당] 버튼을 누른다. 2. MFA 디바이스를 다음과 같이 선택한다. 3. 스마트폰에서 Google Authenticator를 설치 [바코드 스캔]을 이용하..
IAM 이란? Identity and Access Management의 약어로 AWS 리소스에 대한 접근을 안전하게 제어하게 하는 AWS 서비스이다. AWS 계정을 만들고 생성된 사용자를 루트 사용자라고 하며, 계정 생성에 사용한 이메일 주소와 암호로 로그인을 하여 액세스한다. 하지만, AWS에서는 작업시에 루트 사용자를 사용하지 않는것을 추천하고 있다. 즉, IAM 계정을 생성해서 작업을 하기를 권고한다. IAM의 주요 기능은 다음과 같다. 1. AWS 계정에 대한 공유 엑세스 : 암호나 액세스 키를 공유하지 않고도 AWS 계정의 리소스를 관리하고 사용할 수 있는 권한을 다른 사람에게 부여할 수 있다. 2. 세분화된 권한 : 다른 리소스에 대해 다른 사람에게 다른 권한을 부여할 수 있다. 나는 IAM ..
MapStruct 와 Lombok 설정 순서로 인한 문제 해결최근에 MapStruct를 사용하여 DTO를 Entity로 변환하는 MemberMapper를 작성했습니다. 처음에는 정상적으로 작동할 거라 예상했지만, 빌드를 하고 난 후 생성된 MemberMapperImpl에서 기대했던 결과를 얻지 못했습니다. 문제 상황작성한 코드는 다음과 같습니다.MemberMapper@Mapper(componentModel = "spring")public interface MemberMapper { Member memberPostToMember(MemberPostDto requestBody);}MemberPostDto@Getter@AllArgsConstructorpublic class MemberPostDto { ..
매번 회고록에 작성하지만 "벌써 한달이 지났다" 이번 Section4는 실패와 반성 그리고 갓생의 시작인 섹션이었다. Section4는 4가지 주제를 공부하였다. - Spring Security - Spring Web flux - Cloud - Solo Project 우선 Spring Security에서 한방 맞았다. 설날이 있었던 기간이었는데, 유독 집중을 못하고 복습도 제대로 못했다. 몇번을 다시 봐도 머리를 스쳐 지나가는 느낌.. Spring Security는 메인 프로젝트를 시작하기 전 꼭 다시 복습하리. 그리고 드디어 설날이 끝나고,, 반성을 했다. Spring Web Flux를 시작하면서 정규 시간에 최대한 집중했다. 그런데 Spring Web MVC에 이어 이를 또 학습하려니 가닥이 잘 잡히..
벌써 코드스테이츠를 수강한지 3달이 지났다니,, 지금까지 학습한 내용을 상기시키면 3달밖에 안되었다고? 이지만 지나온 시간을 생각하면 벌써 3달이라고? 싶을정도로 정말 시간이 빠르고 느리다(?) Section3은 드디어 Spring에 입문했다. 크게 Spring MVC의 3개의 계층 API Layer, Service Layer, Data Access Layer 를 배웠고, 추가적으로 예외 처리, Transaction, Testing, API 문서화, 애플리케이션 빌드/실행/배포를 배웠다. 솔직히 말하자면, 이번 섹션3는 조금 힘을 뺐다. 아니 Spring을 배우려고 코드스테이츠를 수강했는데 왜 힘을 뺐냐? 너무 깊게 들어가면 삼천포에 빠질것같아서 너무 advanced한 내용은 가볍게 "아 그런게 있구나~..
상황 mySQL에서 유저를 만들고 권한을 주었다. //사용자 생성 mysql> create user [생성할 사용자 이름]@[Server명] identified by [패스워드]; //생성된 사용자 계정 권한 설정 - 모든 권한 mysql> grant all privileges on *.* to [생성할 사용자 이름]@[Server명]; 에러코드 ERROR 1410 (42000): You are not allowed to create a user with GRANT 원인 분명 root로 mysql을 접속했는데 왜 권한을 주는 것이 허용되지 않는지 의아했다. 다른 블로그에서는 루트 유저를 만들고 외부권한을 주면 잘된다고 했는데, root로 외부권한을 주는게 보안상 위험하다고 하여 찝찝했다. 그래서 우선 내..
- Total
- Today
- Yesterday
- 영속성 컨텍스트
- 자바
- Spring Boot
- springboot
- 네트워크
- Hibernate
- Spring
- aws
- java
- CodeDeploy
- entitylisteners
- 트랜잭션
- fetchcount()
- 영속 상태
- 프로그래머스
- 지연 대기열
- network
- IAM
- 정렬
- CI와 CD의 차이
- LeetCode
- EC2
- persistencecontext
- githubactions
- appliationeventlistener
- CI/CD
- DevOps
- acm
- JPA
- Route53
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |