분류 전체보기 59

젠킨스 도커 (DooD, DinD)

현재 젠킨스는 도커위에 컨테이너로 떠있음dood를 이용해 호스트 도커를 사용하여 도커 빌드 하려고함.기본 빌드는 잘 됨graalvm을 이용하여 네이티브 컴파일 된 이미지를 젠킨스 서버에서 빌드하려고하니 리소스를 너무 많이 잡아먹음 1. 젠킨스 컨테이너에 cpu제한 걸어놓음-> 기존 빌드하는것들 시간 좀 늘어나게됨, but 다른 서비스 영향 없음-> graalvm paketobuildpack을 이용해서 빌드하니, 이 빌드팩에서 다른 임시 컨테이너를 만들어서 빌드하는데 이게 cpu 1000% 뜨고 리소스 많이 사용. : 빌드를 새벽에하기? 2. 젠킨스 서버에 도커를 따로 설치해서 DinD로 빌드해보기.- 이미 DooD설정해놓은것 원복하고 DinD로 바꿔보기 젠킨스 agent 등록https://hub.dock..

jenkins를 사용하여 자동 CI 설정하기

1. 젠킨스 설정 1)젠킨스 페이지 접속 2)pipeline으로 선택하여 item 생성 3)configuer의 build triggers설정 소스 코드 관리에서 깃 설정하고 secret token 생성.  4) pipeline script 설정 pipeline { agent any tools { jdk("jdk11") } stages { stage('Git Clone') { steps { git branch: '타겟브랜치', url: '깃 url 입력' } } stage('Build') { steps { sh ''' chm..

[백준 2309] 일곱 난쟁이 - 완전탐색

문제왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다.아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. 뛰어난 수학적 직관력을 가지고 있던 백설공주는, 다행스럽게도 일곱 난쟁이의 키의 합이 100이 됨을 기억해 냈다.아홉 난쟁이의 키가 주어졌을 때, 백설공주를 도와 일곱 난쟁이를 찾는 프로그램을 작성하시오.입력아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다.출력일곱 난쟁이의 키를 오름차순으로 출력한다. 일곱 난쟁이를 찾을 수 없는 경..

mac os에 kafka 설치 및 실행

회사에서 kafka를 사용하는데, kafka에 대해 잘 몰라서 혼자 공부해보기로 결정했다. 책 apache kafaka 를 참고하고, 안되는 부분은 구글링으로..! https://www.yes24.com/Product/Goods/59789254 카프카, 데이터 플랫폼의 최강자 - 예스24 데이터 플랫폼의 핵심 컴포넌트로 각광받고 있는, 이벤트 기반 비동기 아키텍처를 위한 고가용성 실시간 분산 스트리밍 솔루션 카프카(Kafka)의 모든 것!국내 최대 모바일 플랫폼 회사인 카카오 www.yes24.com 1. 카프카 설치 카프카 다운로드 방법1) homebrew 로 설치 : 설치는 쉽지만 실행이 잘 안되는듯.. 방법2) 해당 링크에 들어가서 tgz파일을 다운받는다 https://www.apache.org/d..

개발 공부/kafka 2023.10.23

http 전송 방식

단순 전송 Content-Length 길이 값을 알 수 있을 때 전송하기 압축 전송 Content-Encoding:gzip Content-Length:521 압축해서 전송하는 방법, 뭘로 압축되어있는지도 같이 전송해야함. 분할 전송 Transfer-Encoding Transfer-Encoding:chunked 5 Hello 5 World 0 \r\n 이런식으로 분할해서 전송함. 용량이 큰 데이터를 보낼때 사용. Content-Length를 보내면 안됨. 범위 전송 Range, Content-Range 클라이언트 Range: bytes=1001-2000 서버 : Content-Range: bytes 1001-2000 / 2000

개발 공부/http 2023.07.16

HTTP 콘텐츠 협상

협상(콘덴츠 네고시에이션) 클라이언트가 선호하는 표현 요청 - Accept : 클라이언트가 선호하는 미디어 타입 전달 - Accept-Charset: 클라이언트가 선호하는 문자 인코딩 - Accept-Encoding: 클라이언트가 선호하는 압축 인코딩 - Accept-Language: 클라이언트가 선호하는 자연 언어 협상 헤더는 요청시에만 사용 협상과 우선순위 Quality Values(q) - Quality Values(q) 값 사용 0~1, 클수록 높은 우선순위 생략하면 1 Accept-Language: ko-KR, ko;q=0.9, en-US; q=0.8. en;q=0.7 구체적인 것이 우선한다. Accept: text/*, text/plain, text/plain;format=flowed, */*..

개발 공부/http 2023.07.16

HTTP 헤더 - 일반 헤더

header-filed HTTP 전송에 필요한 모든 부가정보 예) 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보... 표준헤더가 너무 많음 필요시 임의의 헤더 추가 기능 헤더 분류 - General 헤더 : 메시지 전체에 적용되는 정보 - Reqeust 헤더 : 요청 정보 - Response 헤더 : 응답 정보 - Entity 헤더 : 엔티티 바디 정보 RFC723x 변화 - Entity -> Representation HTTP BODY - 메시지 본문(message body)을 통해 표현 데이터 전달 - 메시지 본문 = 페이로드(payload) - 표현은 요청이나 응답에서 전달할 실제 데이터 - 표현 헤더는 표현 데이터를 해석할 수 있는 정보 ..

개발 공부/http 2023.07.16

HTTP 상태코드 (1xx ~ 5xx)

상태코드 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 1xx(Information) : 요청이 수신되어 처리중 - 거의 사용하지 않음 2xx(Successful): 요청 정상 처리 - 200 OK : 정상적으로 처리를 완료함. - 201 Created : 요청 성공해서 새로운 리소스가 생성됨 - 202 Accepted : 요청이 접수 되었으나 처리가 완료되지 않았음(배치 처리 같은 곳에서 사용 ) - 204 No Content : 서버가 요청을 성공적으로 수행했지만, 응답 페이로드 본문에 보낼 데이터가 없음 예) 웹 문서 편집기에서 Save 버튼 - save 버튼의 결과로 아무 내용이 없어도 된다. - save 버튼을 눌러도 같은 화면을 유지해야 한다. - 결과 내용이 없어도 204 메시..

개발 공부/http 2023.06.24

HTTP API 설계 (PUT, POST)

회원 관리 시스템 API 설계 - post 기반 등록 회원 목록 /members ->GET 회원 등록 /members -> POST 회원 조회 /members/{id} -> GET 회원 수정 /members/{id} -> PATCH(부분수정), PUT(전체수정), POST 회원 삭제 /members/{id} -> DELETE POST - 신규 자원 등록 특징 - 클라이언트는 등록될 리소스의 URI를 모른다. - 회원등록 /members ->POST - POST /members - 서버가 새로 등록된 리소스 URI를 생성해준다 - 컬렉션 (Collection) 서버가 관리하는 리소스 디렉토리 서버가 리소스의 URI를 생성하고 관리 여기서 컬렉션은 /members 파일 관리 시스템 API 설계 - PUT 기..

개발 공부/http 2023.06.24