개발 34

[CKA] Namespace 내에 Service Account 생성 → Role 생성→ RoleBinding

koogle 네임스페이스 내에 pod-viewer라는 서비스 어카운트를 생성한다. 그리고 파드 리소스를 대상으로 get, list, watch 권한을 갖는 Role을 생성한다. 마지막으로 이 Role을 pod-viewer 서비스 어카운트에 연결하는 RoleBinding을 생성한다. 서비스 계정 생성 koogle 네임스페이스에 pod-viewer라는 서비스 계정을 생성하려면 다음 명령을 사용합니다. kubectl create serviceaccount pod-viewer -n koogle 잘 생성 되었는지 아래 명령어를 통해 확인합니다. 해당 파일은 pod-viewer-role이 pods 리소스에 대해 get, list, watch 권한을 수행할 수 있도록 하는 규칙을 정의하는 매니페스트입니다. 아래 매니..

DevOps/k8s 2023.11.16

[IT]코드 의존성에서의 위험

left-pad IT계의 대표적인 보안 사고 중 하나로 "left-pad" 이슈가 있다. 이 문제는 일종의 Supply Chain Attack의 예로, 개발자가 많이 사용하는 JavaScript 라이브러리인 "left-pad"가 갑자기 npm(Node Package Manager) 저장소에서 삭제됨으로써 일어났다. 이를 기반으로 하여 다양한 공격 기법들이 발생하였고, 여러 조직이 피해를 입었다. 이에 대표적인 사건하나가 있는데 2016년 3월, Node.js 생태계에서 매우 유명한 패키지인 "left-pad"가 배포 중단되면서 큰 파장을 일으켰다. 이 패키지는 문자열을 왼쪽으로 채우는 함수를 제공하며, 거의 모든 Node.js 개발자들이 일상적으로 사용하는 패키지 중 하나였다. "left-pad" 이슈는..

IT최신동향 2023.05.01

[Kotlin]코틀린1.8.0에서 새롭게 업데이트 된 기능

CBRT Function cube root의 단축어로 세제곱근이라는 뜻이다 import kotlin.math.cbrt val num = 24 val negNum = -num println("The cube root of ${num.toDouble()} is: ${cbrt(num.toDouble())}") println("The cube root of ${negNum.toDouble()} is: ${cbrt(negNum.toDouble())}") 매개변수로 double 과 float를 받아들이고 함수를 가져오고 double 또는 float값을 제공하면 된다. Eg) ${cbrt(num.toDouble())}") , ${cbrt(negNum.toDouble())}") @SinceKotlin("1.8") @W..

[Docker] docker 기본 명령어

버전 확인 $ docker -v 이미지 다운로드 $ docker pull [이미지 명] 다운로드된 이미지 목록 $ docker images 컨테이너 생성 $ docker create [옵션] [이미지 명] 컨테이너 생성 및 실행 $ docker run [옵션] [이미지 명] 컨테이너 실행 $ docker start [컨테이너 명] 컨테이너 재실행 $ docker restart [컨테이너 명] 컨테이너 접속 $ docker attach [컨테이너 명] 컨테이너 정지 $ docker stop [컨테이너 명] 실행중인 컨테이너 목록 $ docker ps 정지된 컨테이너 목록 $ docker ps -a 컨테이너 명 변경 $ docker rename [기존 컨테이너 명] [새로운 컨테이너 명] 컨테이너 삭제 $ ..

DevOps/docker 2023.01.06

AOP 입문자를 위한 기초 개념 : Spring을 사용하지 않는 AOP 구현 방법

AOP란? 관점 지향 프로그래밍이란 OOP로 독립적으로 분리하기 어려운 부가 기능을 모듈화하는 방식이다. 이 글에서 트랜잭션 관리와 같은 부분이 바로 부가 기능 모듈이며, 이를 Aspect라고 한다. AOP는 핵심 비즈니스 로직과 부가 기능 Aspect를 분리하는 등 OOP를 보완하는 역할을 한다. Cross-cutting-Concern (로그처리, 보안처리, 트렌젝션처리)을 소스코드에 로그처리, 보안처리하는 코드를 다 하나하나 넣어줘야했다. 그러면 필요시에 의해서 하나하나 처리를 해줘야하기 때문에 유지보수가 힘들어진다. 과거의 방식을 유지보수에 용이하게 보완하기 위해 등장한 방법이 바로 AOP이다. Cross-cutting-Concern (로그처리, 보안처리, 트렌젝션처리)과 Core Concern(주..

DesignPattern 2022.12.29

[queryDsl] Q-type Class 는 도대체 왜 만드는건가?

Q-type class QueryDSL 설정을 성공하면 @Entity가 붙은 클래스를 찾아 자동생성된다. 예를 들어 @Entity가붙은 Member.kt 클래스가 있다면 QMember.kt 파일이 자동생성된다. repositoryImpl에서 쿼리를 날릴때 메소드 기반으로 쿼리를 작성할 때 우리가 만든 도메인 클래스 구조를 설명해주는 메타데이터역할을 하며 쿼리의 조건을 설정할 때 사용하려고 만드는것이였다. 작성글 삭제하는 쿼리이다. @Entity가붙은 Member.kt 클래스가 있다면 QMember.kt 파일이 자동생성되면서 알아서 객체 이름만 맞춰준다면 쿼리를 코드처럼 편하게 짤 수 있다. override fun deleteBoard(userId: Long, board_id: Long): Boolean ..

JPA 사용할 때 주의해야할 점 2편_관계매핑의 정의와 mappedBy 이해하기

그렇다면 양방향 관계 해결 방법은?? Entity01 BookStore @Entity @Getter @Setter public calss BookStore { @Id @GenerateValue private Integer id; private String name; @OneToMany(mappedBy ="bookStore") private Set books = new HashSet(); //add 메세지로 책을 책방에 추가한 것 void add(Book book){ book.setBookStore(this); this.books.add(book); } } book.setBookStore(this); 의 의미는 무엇일까? book.setBookStore(this); 를 추가하고 실행시키면 데이터 베이스 결..

Python pandas을 통해 DB 마이그레이션하는 방법

젯브레인에서 파이썬 IDE인 pycahrm를 설치한다. 파이썬을 설치한다. cmd에서 pandas를 설치한다. Python Pandas 설치 및 import 방법 https://danykde0til.tistory.com/m/104 파이썬과 판다스 설치 후 파이참에서 엑셀 파일을 잘 불러오는지 확인해본다. Python Pandas로 Excel 파일 불러오고 조회하는 방법 https://danykde0til.tistory.com/m/105 Python Pandas로 Excel 파일 불러오고 조회하는 방법 import pandas as pd import warnings import os warnings.simplefilter("ignore") fileDir = "C:/Users/SEEYA/Desktop/Dat..

Hibernate JPA 사용할 때 주의해야할 점. 원리를 모르면 그냥 쓰지마세요 1편

QueryDSL?? QueryDSL은 정적 타입을 이용해서 SQL 등의 쿼리를 생성해주는 프레임워크이다. QueryDSL의 장점 문자가 아닌 코드로 쿼리를 작성함으로써, 컴파일 시점에 문법 오류를 쉽게 확인할 수 있다. 자동 완성 등 IDE의 도움을 받을 수 있다. 동적인 쿼리 작성이 편리하다. 쿼리 작성 시 제약 조건 등을 메서드 추출을 통해 재사용할 수 있다. 잘못된 예제코드와 정상예제코드 작성을 통해 학습해보기 간단하게 entity가 두개가 있다. 이 둘은 양방향 관계이다. 일대다 양방향 관계이다. Entity01 BookStore @Entity @Getter @Setter public calss BookStore { @Id @GenerateValue private Integer id; privat..