본문 바로가기

전체 글

(190)
@AuthenticationPrincipal이란? Spring에서 회원가입과 로그인 기능을 구현하다 보면 @AuthenticationPrincipal이라는 어노테이션을 자주 만나게 된다.처음 보면 단순히 "현재 로그인한 사용자를 가져오는 어노테이션" 정도로 이해하기 쉽다. 하지만 @AuthenticationPrincipal을 제대로 이해하려면 Spring Security가 인증된 사용자의 정보를 어디에 저장하고, Controller까지 어떻게 전달하는지를 알아야 한다.이번 글에서는 @AuthenticationPrincipal이 내부적으로 어떤 흐름을 거쳐 동작하는지 알아본다.1. @AuthenticationPrincipal이란?@AuthenticationPrincipal은 Spring Security가 현재 인증된 사용자로 저장해 둔 principal ..
Annotatoin 정리 @Entity@Getter@NoArgsConstructor(access = AccessLevel.PROTECTED)@Table(name = "member")public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nullable = false, unique = true, length = 100) private String email; @Column(nullable = false) private String password; @Column(nullable = false, length = 30) private String nicknam..
패키지를 나누는 기준? 도메인을 설계하는 기준? 패키지부터 만들지 말고, 먼저 "사용자가 무엇을 할 수 있어야 하는가?"를 정한다. 그다음 같은 비즈니스 책임과 규칙을 가진 코드를 하나의 도메인으로 묶는다.1. 요구사항을 사용자 행동으로 작성하기화면이나 클래스가 아니라 사용자가 할 수 있는 일을 적는다.회원은 가입하고 로그인을 할 수 있다.회원은 자신의 카테고리를 만들 수 있다.회원은 자신의 공부 기록을 작성할 수 있다.회원은 자신의 기록만 수정, 삭제할 수 있다.회원은 날짜나 카테고리로 기록을 조회할 수 있다. 카테고리 생성이라면? 로그인한 사용자만 만들 수 있다.이름은 비어 있을 수 없다.이름은 30자를 넘을 수 없다.같은 회원이 같은 이름을 중복 생성할 수 없다.다른 회원이 같은 이름을 사용하는 것은 가능하다. 2. 명사에서 도메인 후보 찾기회..
14주차 쿠버네티스 리소스에 대한 접근 제어리소스 접근 제어운영 클러스터 환경을 만들면 워크로드를 배치하고, 비밀값을 읽고, 제어판 컴포넌트를 삭제한 후 얼마나 빨리 복구되는지 볼 수도 있다.운영 클러스터에는 관리자 계정 권한을 가진 사람이 많아서는 안 되며 관리자 계정은 사실상 클러스터 전체를 가진 것과 마찬가지이다.관리 계정이 악의적인 사람에게 탈취된다면 클러스터에서 우리 애플리케이션을 모두 삭제하고 클러스터를 비트코인 채굴기로 사용할 수도 있다.쿠버네티스는 역할 기반 접근 제어(Role-Based Access Control, RBAC)라는 기능으로 권한을 제약한다.쿠버네티스는 역할 기반 접근 제어라는 기능으로 권한을 제약한다.RBAC는 kubectl을 사용하는 사용자, 서비스 접근 토큰을 통해 쿠버네티스 A..
13주차 쿠버네티스 사용자 관리애플리케이션에서는 대량의 로그가 발생하지만, 이 중 실제로 유용한 것은 별로 없다.애플리케이션이 실행되는 파드 수가 급격히 증가하면서 표준적인 쿠버네티스 도구만으로는 로그를 제대로 관리하기가 어려워졌다.기업에서는 보통 자체 로그 프레임워크를 사용하는데, 이런 로그 프레임워크는 컨테이너에서 발생하는 로그를 수집한 후 중앙 저장소에 수집된 로그를 색인, 필터링, 검색하는 수집 후 전달 모델 따른다.로그 관리에서 가장 널리 쓰이는 도구인 플루언트디(Fluentd)와 일래스틱서치(Elasticsearch)를 활용하여 로그 프레임워크를 구성할 수 있다.플루언트디는 컨테이너 로그를 수집하는 역할을 하며, 쿠버네티스와 통합이 쉽다.일래스틱서치는 로그를 저장하는 역할을 하고 클러스터 내에서 파드 ..
14주차 디지털 전환 (DX) 정의디지털 기술을 활용해서 기업이나 조직의 업무 방식, 서비스, 비즈니스 모델 자체를 혁신하는 것을 의미한다.단순 자동화와는 다르고 비즈니스 모델 자체의 혁신이 포함된다. 디지털 전환 목적과 기대 효과고객 경험 개선 : 개인화 추천, 옴니채널 서비스운영 효율성 향상 : 자동화, 실시간 모니터링신규 수익 창출 : 데이터 분석 기반 서비스 출시KPI 예시 : 고객 이탈률 감소, 매출 증가율, 비용 절감율 디지털 전환 핵심 구성 요소기술 : 클라우드, IoT, 빅데이터조직 : 애자일, 크로스펑셔널 팀, 데이터 기반 의사 결정문화 : 변화 수용, 실험 장려, 실패 허용DX는 IT 부서의 프로젝트가 아니라 조직 전체가 함께 만드는 변화이다. 기술, 조직, 문화가 균형을 이루어야 지속가능한 전..
12주차 헬름이란?헬름을 사용하면 여러 개의 YAML 정의 스크립트를 하나의 아티팩트로 묶어 공개 또는 비공개 리포지터리에 공유할 수 있다.공유 리포지터리에 접근 권한이 있는 사람은 누구든지 헬름 명령 한 번이면 이 애플리케이션을 설치할 수 있다.헬름 명령으로 컨피그맵과 디플로이먼트, 서비스 등 애플리케이션을 구성하는 쿠버네티스 리소스를 배치할 수 있으며, 설치와 함께 설정 값도 조정할 수 있다.쿠버네티스를 위해 헬름을 꼭 능수능란하게 사용해야 하는 것은 아니지만, 쿠버네티스를 사용하는 조직에서 헬름이 널리 사용되는 만큼 익숙해질 필요는 있다.Ubuntu의 apt, Windows의 choco, Python의pip처럼 쿠버네티스에서는 Helm으로 애플리케이션을 설치하고 관리한다.Helm을 사용하면 필요한 YAML ..
13주차 클라우드 보안 위협 개요클라우드 채택 증가 -> 공격 표면 확대공격 표면 확대 이유리소스와 API가 인터넷을 통해 노출됨 - 공격자가 물리적으로 접근하지 않아도 가능서버, 데이터베이스, 스토리지, API, 관리 콘솔 등 공격 경로 다양화자동화, DevOps 환경에서 빠른 배포로 보안 검증 절차가 짧아지는 경우 발생멀티 태넌트 환경의 보안 특징 : 하이퍼바이저 취약점, 컨테이너 격리 실패 시 다중 고객 정보에 영향온프레미스와의 창온프레미스 : 물리적 보안, 망 분리로 기본적인 격리클라우드 : 논리적 격리 기반이므로, 설정 오류나 서비스 취약점이 더 위험 대표적인 클라우드 보안 위협 유형계정 도용 : 공격자가 사용자 계정을 탈취하여 클라우드 자원에 무단 접근하는 것.구성 오류 : 잘못된 보안 설정(예: 공개..

반응형