안녕하세요, cool & soft한 백엔드 개발자가 되고싶은 토니입니다.
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- MacOS
- 로드밸런서
- 고용노동부
- springboot
- ubuntu
- 해커톤
- CS
- 알고리즘
- 백엔드
- Linux
- 서버
- 구름톤딥다이브
- java
- 웹
- pfsense
- be
- docker
- 빅챗
- backend
- network
- JPA
- 백준
- kdt
- 보안
- Spring
- server
- 구름톤
- springSecurity
- nlb
- AUSG
- Today
- Total
목록전체 글 (29)
Code Art Online

쿠버네티스의 Self-Handling쿠버네티스는 운영 수준의 컨테이너 오케스트레이션 플랫폼으로, 컨테이너화된 애플리케이션을 자동으로 배포, 스케일링, 모니터링, 복구할 수 있는 기능들을 제공한다. 특히 Self-handling 기능에는 livenessProbe라는 것이 있다. livenessProbe는 컨테이너를 진단해서 정상적인지 검증하고, 그렇지 않다면 restart를 한다. 이전에는 개발자가 직접 모니터링을 해서 애플리케이션 상태를 확인하는데, 쿠버네티스는 이를 자동화해준다.https://kubernetes.io/ko/ 운영 수준의 컨테이너 오케스트레이션K8s라고도 알려진 쿠버네티스는 컨테이너화된 애플리케이션을 자동으로 배포, 스케일링 및 관리해주는 오픈소스 시스템입니다. 애플리케이션을 구성하는 ..

AWS는 신이야. 백엔드 개발자로서 처음 AWS를 접하면, 마치 넓고 깊은 바다에 빠진 듯한 느낌이 든다.'아 이거 왜 이렇게 어렵게 만들었어?'라는 답답함도 느끼곤 한다. 그래서 나는 처음 백엔드 개발했을 때에는 AWS가 어렵게만 느껴졌지만,학교에서 GPU 서버관리자로 일하게 되면서 AWS는 그저 신이라는 것을 느꼈다.서버관리자를 하면서는 오류신고를 받고 해결하는 과정을 반복하는데,AWS를 쓰면 그런 일이 거의 없다.애초에 그런 오류가 나지도 않는다...그래서 개발할 때 AWS를 사용하는 것이 즐거워졌고,'이건 어떻게 만들었을까', '어떻게 이런 걸 딸깍 하나로 가능하게 했을까' 감탄하게 된다. 인간 존재의 의미부터 개발자 존재의 의미까지... 개발을 막 시작하면 누구나 설레고 신나는 순간이 있다.내..
학생이 노트북을 학교 캠퍼스 네트워크에 연결하고 www.google.com을 요청한다고 해보자! 과정을 1단계에서 4단계까지 정리해보자. 1단계: 인터넷 연결 - DHCP (Dynamic Host Configuration Protocol)상황노트북이 네트워크에 연결되었지만, IP주소가 없다. First-hop router(게이트웨이) 주소를 모른다. DNS 서버 주소를 모른다. 네트워크 연결을 하기 위해서는 위 세 가지 정보가 필요하다. DHCP 과정1. DHCP DiscoverApplication Layer: DHCP Discover 메시지를 생성한다. Src: 0.0.0.0:68 -> Dest: 255.255.255.255:67전송 방식: Broadcast (모든 장치에게 전송한다.) 캡슐화 ..

DHCP란?호스트에 IP주소를 수동으로도 할당할 수 있지만, DHCP(Dynamic Host Configuration Protocol, 동적 호스트 구성 프로토콜)이 더 많이 쓰인다. DHCP는 말그대로 호스트가 IP주소를 자동으로 얻을 수 있게 해준다. Plug-and-play protocol or zero-configuration protocol이러한 특성 때문에 플러그 앤 플레이 프로토콜 또는 제로 구성 프로토콜이라고도 한다. 예를 들어 학교에서 WIFI를 사용한다고 해보자. 나는 신공학관에서 정보문화관으로 이동하면서 새로운 IP주소가 필요할 것이다. 많은 사용자가 이동하고, 주소들이 제한된 시간에서만 필요한 경우 수동 할당보다는 DHCP가 적합하다. client-server 프로토콜DH..

ALB : Application Load Balancer (OSI 7계층 기반의 부하 분산기)애플리케이션 layer : HTTP에서 URL을 기반으로 부하분산주로 웹서버에 대한 로드밸런싱URL 기반으로 분산을 처리하는 예시`www.naver.com/news`에 대한 트래픽이 많아지면 ALB가 Target group에 분산시켜준다.`www.naver.com/shopping`에 대한 트래픽이 많아지면 ALB가 Target group에 분산시켜준다.웹서버가 여러대 있다면 Round Robin(RR, 순차분배)으로 분산하는 방식을 사용한다. NLB : Network Load BalancerNLB는 Layer 3인 Network laryer에서 작동한다고 착각할 수 있지만, 여기에서는 port 번호에 대한 로..

서비스를 개발하다보면 여러가지 권한을 가진 회원들이 생기는 경우가 많다.방문하는 모든 사람들이 접근할 수 있는 리소스, 그리고 회원만 접근할 수 있는 리소스가 있을 것이다.작은 프로젝트에서는 회원만 접근할 수 있는 리소스는 토큰이 필요하게끔하면 되겠지만,관리자 계정이 필요한 경우도 있다. 아주 간단하게는 리눅스처럼 관리자용 특정 `user_id`를 주어 해결할 수 있다. 하지만 권한을 나눠야하는 case가 3개 이상인 경우, `user_id`로 구분하는 방식은 유연성과 확장성이 떨어진다.따라서 내가 Spring Security로 권한을 나누고 관리하는 방법에 대해 적어보고자 한다. Spring Security를 이미 사용하고 있다면, 권한을 나누는 방법은 아주 간단하다. 1. Role enum을 만든다...

Pfsense의 Alias 기능pfsense에는 alias(별칭) 기능이 있다. alias는 firewall rules, port forwards, outbaoud NAT rules 등에 적용될 수 있다. alias를 사용하면 규칙이 더 간결해지고, 문서화되며, 관리가 더 쉬워진다. Alias 적용 case나는 firewall rules에서 backend.ai 를 설정하는 데 필요한 포트들을 열어주려고 했다. 여러가지 포트를 열어줄 경우에, 하나씩 규칙이 생성될 것이다.예를 들어 3000, 8100, 8110, 8120, 9090, 8081 5개 포트가 필요하면 규칙이 5개 생긴다.귀찮아서 범위를 지정해서 8100~9090을 한방에 열어버리면 필요없는 포트까지 열리는 문제가 발생한다.그래서 alias를 ..
✅ 인덱스를 머리에 채우기인덱스가 당연히 있어야 하고 당연히 좋다고 생각하기 쉬운데...인덱스가 없더라도 데이터베이스가 작동하는 데에는 문제가 없다. 오히려 인덱스를 관리하는 데 비용이 증가할 수 있고, 성능도 저하될 수 있다. 하지만 데이터베이스의 크기가 커지면 인덱스의 필요성이 커진다. 인덱스는 그냥 있는 것이 아니라 다양한 인덱스 구조와 활용 방법이 있고 비용과 성능 측면을 고려하여 도입해야 한다. 그래서 인덱스를 머리에 좀 채워보려고 한다. 인덱스는 데이터의 읽기(SELECT) 속도를 빠르게 만들어주는 역할을 한다.다만, 그 대가로 데이터의 쓰기 작업(INSERT, UPDATE, DELETE) 성능에 영향을 준다. 변경 작업이 자주 일어나거나, 인덱스가 적절하지 않으면 paging이 빈번해져 성능..

우선 우분투에 apache2를 설치해준다.sudo apt install apache2 sudo service apache2 start 설치가 다 되었다. 이제 index.html을 만들어주자. i를 누르면 바로 편집할 수 있도록 모드가 전환된다. esc키를 누르면 명령어를 누를 수 있고, :wq를 입력하면 '저장하고 종료한다'는 뜻이다. localhost에 들어가면 잘 띄워져있다. 이제 원하는 내가 구매하고 싶은 이미지를 넣고, 설명을 적는 과제를 수행하자! 이미지를 웹사이트에서 다운받은 후, 경로를 적절하게 바꿔주었다. 경로를 제대로 지정해주지 않으면 사진이 뜨지 않는다!나는 Downloads 아래에서 작업했다. vim이 익숙해서 그냥 vim으로 작업했다.간단한 파일 수정 정도..

M3칩이 탑재된 맥북은 ARM 아키텍처를 사용하기 때문에, 일반적으로 배포되는 Ubuntu Desktop ISO 이미지(x86_64 용)은 작동하지 않는다. 대신에 Ubuntu Server (Live Server) ARM64 이미지는 사용할 수 있다. 일단 Live Server ISO 이미지를 사용하고, 이를 기반으로 Ubuntu Desktop 환경을 설정해주면 된다. ✅ 1. UTM 설정UTM 열기 > Create a New Virtual MachineVirtualize 선택 (M1/M2/M3 칩용, ARM64 가상화)Operating System > Linux 선택Boot ISO image > ARM64 용 Ubuntu Server ISO 선택메모리, CPU, 디스크 설정RAM: 최소 4GB 권장CP..