728x90

전체 글 137

[Jenkins] Maven 버전 변경 (Pipeline 기준)

1. Jenkins 플러그인 접속 후, Maven Integration Plugin 설치 (이미 설치해서, 설치된 플러그인을 찍음) 2. Jenkins 관리 → Global Tool Integration → Maven 이동 Name 등록 Version 선택 Save 3. Jenkinsfile 수정 withMaven 부분 수정 ( 위에서 설치한 maven 버전 이름 ) withMaven() { sh "mvn clean package" } withMaven(maven: 'maven3.8.1') { sh "mvn clean package" } 참고 https://itkevin.tistory.com/8 https://stackoverflow.com/questions/71085202/error-could-not-..

DevOps/Jenkins 2022.08.03

[Kubernetes] error: You must be logged in to the server (Unauthorized)

나의 경우는 EKS 에서 웹에서 생성한 Cluster가 CLI 환경에서 적용되지 않아 발생하였다. 원인은 웹에서 생성한 유저와 EC2에서 사용하는 CLI 유저가 달라서 생긴 현상으로, 쉽게 해결하는 방법으로 웹페이지 로그인을 유저로 변경해서 로그인하여 생성하는 방식으로 해결했다. 다른 방식으로도 해결은 가능할테지만, 해야 할 일이 많아 생략한다.

DevOps/AWS 2022.07.25

[DevOps] Kubenetes 공부 #2 - 리소스(1)

쿠버네티스에서는 실행 환경 관리를 소프트웨어로 수행하기 때문에 다양하게 추상화하였는데, 이 추상화한 것을 리소스라고 부른다. 쿠버네티스에서 실행되는 리소스는 목적에 따라 대표적으로 아래와 같이 나뉜다. 애플리케이션 실행 : 포드(Pod), 레플리카셋(ReplicaSet), 디플로이(Deployment) 네트워크 관리 : 서비스(Service), 인그레스(Ingress) 어플리케이션 설정 정보 관리 : 컨피그맵(ConfigMap), 시크릿(Secrets) 배치 잡 관리 : 잡(Job), 크론잡(CronJob) 포드(Pod) 쿠버네티스에서는 여러 개의 컨테이너를 모아 하나의 포드로 관리하고, 최소 단위를 포드로 사용한다. 포드 안의 컨테이너들은 가상 NIC(프라이빗 IP)를 공유하는 구성을 취하기 때문에 컨..

카테고리 없음 2022.06.22

[DevOps] Kubenetes(K8s) 공부 #1 - 기본 개념, pod, node

오늘은 Kubenetes에 대해서 공부했고, 복습하며 내가 이해한 내용을 적어보려고 한다. 쿠버네티스, 도커, 컨테이너란? 쿠버네티스란 컨테이너 오케스트레이션 툴이다. 컨테이너란 호스트 OS에 논리적 구역(컨테이너)를 만들어, 어플리케이션 실행에 필요한 라이브러리 등의 리소스를 한데 모아 서버인 것처럼 실행시킬 수 있도록 만드는 것을 의미한다. 서버 구축에 필요한 자원을 최소한으로 사용할 수 있게 되고, 서버 구축에 필요한 개발 시간이 많이 단축되기 때문에 많이 사용되기 시작했다. 도커는 위의 컨테이너를 구축하고 관리할 있도록 이미지라는 단위를 이용해 컨테이너를 생성, 배포할 수 있게 해주는 소프트웨어이다. 하지만 컨테이너간 호환이나 컨테이너를 여러 개 관리하는 경우 관리의 어려움이 생겨 컨테이너 간 오..

DevOps/Kubernetes 2022.06.20

Attention is all you need (Transformer) 리뷰

최근에 논문을 너무 안 읽은 것 같아 논문을 읽어보려고 하다가 어텐션이 많이 들어가서 파악이 잘 안 됐다. 트랜스포머가 좋은 논문이라고 해서 많이 듣기는 했는데 이것부터 읽어보지 않으면 다음 논문을 읽어볼 수 없을 것 같아 트랜스포머를 읽어보았다. 그동안 트랜스포머에 대해 간략하게 들어보면서 내가 궁금했던 것은 이렇다. NLP 에서 Transformer 가 이전과의 차이점이 무엇인지? 학습 구조 트랜스포머 내에서 Query, Key, Value 라는 단어가 왜 쓰였는지? 그리고 아래는 내가 트랜스포머 논문을 읽으면서 간략하게 요약해보면서 적었다. 1. Introduction RNN 모델 특성 상 길어질수록 메모리의 제약이 생김 이 문제를 해결하기 위해 분해 트릭이나 조건부 연산 같은 연구가 있었고, 후자..

AI | ML/NLP 2022.06.01

[Python] String type 한글 바이트 -> 한글 변환

유니코드를 변환하고 받아오는 과정에서 타입이 변환되는 경우가 생긴다. 나의 경우는 대략 이렇다. 아래와 같이 입력부터 한글로 들어왔다면 인코딩을 utf-8로 했다면 디코딩도 utf-8로 진행하면 되므로 문제가 되지 않는다. a = "파이썬" a = a.encode('utf-8') print(a, type(a)) b'\xed\x8c\x8c\xec\x9d\xb4\xec\x8d\xac' 문제는 아래와 같은 상황인데, 유니코드가 byte로 넘어왔는데 인식이 잘못되어 string으로 변환된 경우이다. a = "\\xed\\x8c\\x8c\\xec\\x9d\\xb4\\xec\\x8d\\xac" # 한글, utf-8로 파이썬 print(a, type(a)) # \xed\x8c\x8c\xec\x9d\xb4\xec\x8..

[IoT] Serial 통신에 대한 이해 및 주의 사항

시리얼 통신이란? 컴퓨터 과학에서 직렬(Serial) 통신은 병렬(Parallel) 통신과 대비되는 말이다. 왜냐하면 같은 데이터를 두고 전달하는 방법이 다르기 때문이다. 병렬인 경우 같은 시간에 데이터가 여러개 들어오는 반면, 직렬인 경우 같은 시간에 데이터가 1개씩 "연속적"으로 들어온다. (그래서 Serial이다) 위의 내용을 보았을 땐 당연하게 병렬이 좋겠지만, 하드웨어 설계나 비용 등의 경제성을 고려하면 직렬 통신을 사용하는 이유로 이어지게 되는데, 이런 이유로 IoT 분야에서는 직렬 통신을 더 애용하는 것 같다. 직렬 통신의 장점으로는 경제성이 있겠지만, 프로그래밍하는 입장에서는 데이터가 순차적으로 들어오는만큼 데이터에 대해 정해져있지 않으면 어디가 데이터의 시작이고 어디가 끝인지 알 수가 없..

[Go] 테이블 주도 테스트란? Table Driven Test

최근에 테스트 주도 개발(Test Driven Development, TDD)에 관해 관심이 있어서 알아보았고, 그러던 중 당근마켓에서 쓴 글을 읽다가 알게된 테이블 주도 테스트라는 것이 있어 새롭게 배운 것 같아 몇개 더 알아보다가 글을 써본다. https://medium.com/daangn/how-to-write-a-testable-golang-code-4c0e67612bb8 유연하고 테스트 가능한 Go 코드 작성하기 Go 언어는 개발자에게 코딩의 즐거움을 일깨워주는 언어입니다. Go가 가진 명확한 한계(가비지 컬렉션으로 인한 성능 저하, 제네릭을 지원하지 않음)에도 불구하고 말이죠. medium.com 먼저 TDD를 간단하게 설명을 하면 테스트를 통해 개발해보자는 의미로, 개발을 한다음에 테스트하는..

[OS] 운영체제는 어떻게 시작될까?? 리눅스 부팅 순서

리눅스에서 네트워크 서비스들을 만지다가 운영체제의 근본에 대해 호기심이 생겨 공부한 내용을 적는다. 내가 개인적으로 알고싶었던 것은 네트워크 시점이 어느 시점에 시작되는가였다. 1. 운영체제는 어떻게 시작되고 어떻게 관리될까?? 컴퓨터라는 하드웨어는 CPU, RAM, HDD 등의 각각의 하드웨어들이 메인보드 위에서 상호작용하여 이루어진다. 근데 이게 어떻게 돌아가길래 저기서 지금 우리가 보는 홈페이지를 띄우고 마우스와 키보드 입력 등의 많은 일들을 자연스럽게 할 수 있을까?? 컴퓨터에서 OS가 고장나거나, 설치하지 않으면 검은 화면만 띄우는 녀석밖에 되지 않는다. 이 말은 다시 생각해보면 OS를 기반으로 많은 일들이 가능해지게 된다는 말이 된다. 이렇게 보면 OS는 우리가 아는 프로그램(소프트웨어)과 하..

Computer Science/OS 2022.03.08
728x90