전체 446

[Spring] Rest API 서버 만들기 1 - 문서화, 구조, Exception, Security

https://daddyprogrammer.org/post/series/springboot2-make-rest-api/ SpringBoot2로 Rest api 만들기 - 강좌모음 SpringBoot2로 Rest api 만들기 - 강좌모음 daddyprogrammer.org 1. Intellij Community 프로젝트 생성 2. HelloWorld 3. H2 Database 연동 4. Swagger API 문서 자동화 5. API 인터페이스 및 결과 데이터 구조 설계 6. ControllerAdvice를 이용한 Exception 처리 7. MessageSource를 이용한 Exception 처리 8. SpringSecurity를 이용한 인증 및 권한 부여 1. Intellij Community 프로젝트..

[개발론] 생성 패턴 (Creational Pattern) - 싱글톤, 팩토리, 추상 팩토리, 빌더, 프로토타입

생성 패턴 정의 - 인스턴스를 만드는 절차를 추상화하는 패턴 역할 - 객체 생성/합성 방법 또는 객체 표현 방법을 시스템과 분리 중요한 이유 - 시스템이 상속(inheritance)보다 복합(composite) 방법을 사용하는 방향으로 진화하면서 더 중요해짐 중요한 이슈 생성 패턴은 시스템 사용하는 Concrete Class 정보를 캡슐화 생성 패턴은 class의 인스턴스 생성/결합 부분을 완전히 가림 [정리] 생성 패턴으로 누가, 어떻게, 언제 생성하고 무엇이 생성되는지에 대한 결정이 유연해짐 종류 싱글톤 패턴 (Singleton) 팩토리 패턴 (Factory) 추상 팩토리 패턴 (Abstract Factory) 빌더 패턴 (Builder) 프로토타입 패턴 (Prototype) 싱글톤 패턴 (Singl..

CS/개발론 2022.06.04

[백준][재귀] 트리의 순회

BAEKJOON Online Judge(BOJ) 문제입니다. https://www.acmicpc.net/ Baekjoon Online Judge Baekjoon Online Judge 프로그래밍 문제를 풀고 온라인으로 채점받을 수 있는 곳입니다. www.acmicpc.net 문제 https://www.acmicpc.net/problem/2263 2263번: 트리의 순회 첫째 줄에 n(1 ≤ n ≤ 100,000)이 주어진다. 다음 줄에는 인오더를 나타내는 n개의 자연수가 주어지고, 그 다음 줄에는 같은 식으로 포스트오더가 주어진다. www.acmicpc.net 내가 작성한 코드 import sys sys.setrecursionlimit(10 ** 8) def read_data(): n = int(inpu..

코딩테스트 2022.06.02

[데이터분석] 협업 필터링 (Collaborative Filtering)

추천 알고리즘 종류 협업 필터링 (Collaborative Filtering) Memory-based Approach - User-based Filtering - Item-based Filtering Model-based Approach - Matrix Factorization 콘텐츠 기반 필터링 (Contents-based Filtering) 정의 유저-아이템 간 상호작용 데이터를 활용하는 방법 - ex) 이 영화를 좋아하는 다른 사람이 좋아하는 영화 콘텐츠 기반 필터링과 비교 - 정의 : 콘텐츠 특성을 기반으로 추천하는 방법 - ex) 내가 좋아하는 감동, 장르 등을 활용 특징 장점 일반적으로 Content-based보다 성능이 좋음 도메인에 의존되지 않음 쉽게(학습없이, 산술연산으로) 만들 수 있음..

[데이터분석] 정형, 비정형, 반정형 데이터

데이터란 데이터 의사결정에 사용되는 사실(fact)의 집합 설명 (description) 관찰 (observation) 숫자 (numbers) 데이터 분류 정형 - 미리 정의된(pre-defined) format으로 저장 - 매우 구체적인 구조 비정형 - native format으로 저장 - 매우 다양한 형태 반정형 - relational database 모델이나 table 형태를 사용하지 않는 방식 정형 데이터 (Structured Data) 보통 테이블 데이터(tablular data)를 말함 - 데이터베이스에서 row와 column으로 표현 관계형 데이터베이스 - 이런 테이블 형태로 데이터를 저장하는 데이터베이스 수학 용어로 "관계(relation)"는 table 형태의 데이터를 말함 정형 데이터에..

[SRE] SRE란 (Site Reliability Engineering)

https://bcho.tistory.com/1325 SRE - #1 SRE/DEVOPS의 개념과 SRE는 무엇을하는가? Site Reliability Engineering(SRE) #1 SRE/DEVOPS의 개념 조대협 (http://bcho.tistory.com) 배경 Devops는 운영팀과 개발팀을 하나의 팀으로 묶어놓고 전체적인 개발 사이클을 빠르게 하고자 하는 조직 구조이자.. bcho.tistory.com DevOps와 SRE DevOps 엔지니어(운영)의 역할 DevOps는 개발과 운영이 하나의 팀으로 묶여 개발 사이클을 빠르게하는 조직구조이자 문화 클라우드로 개발자가 직접 배포/운영이 가능 그러나 시스템이 커지면서, 안전성을 중요하게 생각하는 "운영"의 역할이 여전히 필요 SRE 개발자가 ..

[EagleEye][서비스구축] K8s에 배포한 사용자 svc의 metrics를 prometheus로 수집하기

https://twofootdog.tistory.com/22 Actuator & Prometheus를 활용한 Spring Boot 애플리케이션 모니터링 이번 글에서는 Actuator와 Prometheus를 활용하여 쿠버네티스 클러스터 내에서 실행 중인 스프링부트 애플리케이션 모니터링을 하는 방법에 대해 알아볼 것이다. Prometheus Server도 쿠버네티스 클러스 twofootdog.tistory.com https://jongmin92.github.io/2019/12/04/Spring/prometheus/ SpringBoot Application의 monitoring 시스템 구축하기 Spring Boot를 사용하고 있는 애플리케이션에서 이전에 살펴본 Micrometer를 이용해서 metric을 생성..

만들기/EagleEye 2022.05.18

[EagleEye][환경세팅] K8s Promehteus metrics 연결 문제 해결 (connection refused, connection reset by peer)

[에러] serviceMonitor/prometheus : Get - dial tcp - connect: connection refused - 몇몇 메트릭을 수집하지 못하는 문제 발생 kube-proxy metricsBindAddress 수정 >> kubectl -n kube-system edit cm kube-proxy - metricsBidnAddress: "" -> metricsBidnAddress: 0.0.0.0:10249 (이것 덕분에 해결되는건지 확실하진 않음) reboot (control plane, worker nodes) >> sudo reboot (reboot을 안해도 기다리면 해결되는 항목도 있는 듯) reboot 후 상태 그 외 kube-system 해결되지 않은 항목 kube-co..

만들기/EagleEye 2022.05.17

[EagleEye][환경세팅] Grafana - Prometheus 연동

https://gruuuuu.github.io/cloud/monitoring-02/ Kubernetes Monitoring - Prometheus 실습 Overview 이번 포스팅에서는 쿠버네티스 클러스터의 메트릭들을 프로메테우스로 수집하고 web UI를 통해 시각화 시키는 작업을 해보겠습니다. 참고 링크 : 쿠버네티스 시작하기(11) - Prometheus & Node-Ex gruuuuu.github.io Grafana에서 Data Source / Prometheus 추가 K8s에서 Prometheus IP 확인 >> kubectl get svc -n prometheus URL 수정 후 save & test 대시보드 template 다운받기 홈페이지 접속 : https://grafana.com/ Gra..

만들기/EagleEye 2022.05.17

[리눅스] 명령어 모음

계정 계정 생성 useradd {계정} sudo 권한주기 sudo vi /etc/sudoers ({계정} ALL={ALL:ALL} ALL 추가) 계정 비밀번호 변경 passwd {계정} 현재 계정 변경 su - {계정} 호스트네임 바꾸기 hostnamectl set-hostname {호스트네임} 방화벽 방화벽 status numbering sudo ufw status numbered 방화벽 rule 지우기 sudo ufw delete {룰 번호} 사양 확인 리눅스 커널 uname -r cat /proc/version CPU cat /proc/cpuinfo 메모리 free cat /proc/meminfo 저장소(논리 파티션) df -h 저장소(물리 디스트) fdisk -l 프로세스 포트 사용하는 프로세스 ..

CS/리눅스 2022.05.17