뉴뉴의 메모장
블로그 이사합니다 !
블로그 이사합니다 !
2024.02.05https://devyuseon.github.io/ 뉴뉴의 메모장 | 뉴뉴의 메모장 Blog devyuseon.github.io
[Spring] Spring Scheduler의 기본 설정은 싱글 스레드이다.
[Spring] Spring Scheduler의 기본 설정은 싱글 스레드이다.
2023.11.28원래 스프링 부트가 제공해주는 스케줄러를 쓰고 있었는데, 다른 task를 추가해야 할 일이 생겼다. 그런데 이 스케줄링이 겹치면 어떻게 될 지 궁금해졌다. Scheduler 테스트 셋팅 먼저 Configuration이 선언된 곳에서 @EnableScheduling을 추가해준다. @SpringBootApplication @EnableScheduling public class PlaygroundApplication { public static void main(String[] args) { SpringApplication.run(PlaygroundApplication.class, args); } } 두개의 스케줄러를 등록한다. test1: 1초마다 수행, 5초의 작업 시간이 걸린다. test2: 1초마다 수..
[Github 잔디심기🌱] Tistory 글 업로드시 Github에 커밋 (Python)
[Github 잔디심기🌱] Tistory 글 업로드시 Github에 커밋 (Python)
2023.11.24휑한 잔디를 보며 마음이 아파.. 티스토리에 글을 업로드 할 때 깃허브에 커밋이 되면 좋겠다고 생각이 들어 찾아보았는데 Github Action을 통해 간단하게 구현이 가능한 것 같았다. 시도. 티스토리에서 rss 기능을 제공하고 있어 rss를 통해 가져오는 방법으로 진행했다. 훗날 막히거나, 티스토리가 아닐 경우엔 BeautifulSoup이나 Selenium같은 크롤링 라이브러리를 활용하면 되겠다! Tistory RSS 설정 블로그 관리 > 블로그 > 기타 설정 블로그 url/rss 로 확인한다. 피드 가져오기 rss 피드를 가져오기 위해 python의 feedparser를 이용했다. 설치 pip install feedparser 테스트 해본다. import feedparser import pprint..
[프로그래머스] 2023 KAKAO BLIND RECRUITMENT | 이모티콘 할인행사
[프로그래머스] 2023 KAKAO BLIND RECRUITMENT | 이모티콘 할인행사
2023.09.23🔎문제 프로그래머스 2023 KAKAO BLIND RECRUITMENT Lv.2 이모티콘 할인행사 https://school.programmers.co.kr/learn/courses/30/lessons/150368?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡풀이 python itertools의 product()를 이용해 중복 순열을 구한 다음, 모든 결과를 리스트에 넣고 문제 조건대로 정렬했다. 중복 순열을 구하는 과정이 어렵다면 어려운 과정인데,, 파이썬이 이럴때는 정말 깡패다. 📃소스코드 from itertools ..
[Infra] Scale Out 과 Scale Up
[Infra] Scale Out 과 Scale Up
2023.09.17서비스 이용자가 많아지고, 쌓아야 하는 데이터가 많아지거나 트래픽이 증가해 한계에 도달하면 인프라를 확장해야 하는 순간이 온다. 성능을 유지하면서 확장을 해야 한다. 이때 Scale Out 또는 Scale Up 전략을 쓸 수 있다. Scale Out (스케일 아웃) 작업의 부하를 여러 서버로 분산하기 위해서 아키텍처에 더 많은 서버를 추가하는 것이다. '수평 스케일링' 이라고 할 수 있다. 단일 서버로 아키텍처가 구성되어 있는데, 이를 스케일 아웃 하려면 아키텍처를 수정해야 한다. 분산 아키텍처가 잘 구성되어 있다면, 확장이 필요할때 서버 한대만 더 추가하면 된다. 여러 서버에 분산되어 있기 때문에 한 서버에 장애가 나도 다른 서버에 영향을 주지 않는다. 서버 여러대에 부하를 분산하는 로드밸런싱도 구현할..
[Database] RDBMS vs NoSQL (관계형DB vs 비관계형DB)
[Database] RDBMS vs NoSQL (관계형DB vs 비관계형DB)
2023.09.17요즘 NoSQL을 사용하는 기업들이 많아지고 있다. Facebook, Twitter, Netflix, Instagram, Apple의 iCloud 등 많은 기업들이 NoSQL을 채택했다. 왜 NoSQL을 사용할까? 그럼에도 불구하고 SQL(관계형DB)는 여전히 주류 DB로 통용된다. 두 데이터베이스는 무엇이 다르고 어떤 경우에 무엇을 채택해야 할까? ✅ Database, DBMS 📍 Database 관련된 데이터의 모임 또는 집합 정형화되고 조작 가능한(처리하기에 용이한) 컴퓨터에 저장된 데이터의 모임 특정 목적을 위해 계산, 저장, 검색, 정렬 등의 "데이터 처리" 작업을 수행 한마디로, 어떤 특정 조직의 응용 시스템에 사용되는 조작 가능한 저장 데이터의 모습 📍 DBMS DBMS, DataBase M..
[Javascript] Lexical Scope (렉시컬 스코프) 란?
[Javascript] Lexical Scope (렉시컬 스코프) 란?
2023.09.11✅ Lexcial Scope(= Static Scope) 란? 렉시컬 스코프, 또는 정적(static) 스코프는 프로그래밍 언어에서 변수의 유효 범위(scope)를 결정하는 규칙 중 하나이다. 함수 호출 시점과는 무관하게 변수 선언 위치에 따라 스코프가 결정되는 것을 말한다. 함수를 실행해 보지 않아도, 코드만 보고도 알 수 있는 것이 바로 렉시컬 스코프이다. ✅ Lexical Scope의 예시 function outerFunction() { const outerVar = "I am from outerFunction"; function innerFunction() { console.log(outerVar); } return innerFunction; } const myClosure = outerFunct..
[Linux] /var/db/sudo/lectured/ 의 정체는?
[Linux] /var/db/sudo/lectured/ 의 정체는?
2023.09.04/var/db/sudo/lectured 경로로 이동해 보면, 빈 파일들이 있는 것을 볼 수 있다. 이것들의 정체는 무엇일까? 정답은 sudo를 시도한 user의 목록 이다. 한번 확인해보자. 현재는 해당 경로에 아무 파일도 없다. 'yuseon' 계정으로 로그인 해, sudo를 시도해보자. With great power comes great responsibility.. 같은 명언이 출력되며 경고를 하는 것을 볼 수 있다. 다시 루트로 로그인 해 /var/db/sudo/lectured 를 확인해 보자. yuseon이 이름인 파일이 하나 생겼다. 이후에 다시 로그인 해, sudo를 해보면 경고 없이 로그인 된다. 그럼 /var/db/sudo/lectured로 다시 이동해, 파일을 지워보자. 다음엔 다시 로..
[블로그] 티스토리 블로그 코드블럭 맥 스타일로 변경하기
[블로그] 티스토리 블로그 코드블럭 맥 스타일로 변경하기
2023.09.03블로그 코드블럭을 예쁘게 보이는 것을 중요하게 생각한다. 맥 스타일로 코드블럭을 꾸미는 것이 예쁘게 보여, 한 번 시도해 보았다. https://guiyomi.tistory.com/132 [티스토리 블로그 테마] - 1. 코드 블록 디자인을 mac 코드 스타일로 바꾸기 글을 읽기 전 미리 보는 완성본은 다음과 같다. 어떻게 만들었고 적용했는지 궁금하신 분들은 아래로 스크롤! See the Pen tistory code block by MiJeong Kim (@sap03110) on CodePen. 발단 여느 날과 다름없이 회사 guiyomi.tistory.com 님의 블로그에 올라온 방법으로 진행했고, 몇가지만 커스텀했다. 먼저 블로그 스킨편집 > html편집 > html 에서 첨부된 js 임포트 코드를..
Docker Compose
Docker Compose
2023.08.27🐳 Docker 시리즈 살펴보기 🐳 1. Docker와 Container 2. Dockerfile과 Docker Image ➡️ 3. Docker Volume 4. Docker Network 5. Docker Compose 🐳 Docker Compose란? 여러개의 컨테이너로부터 이루어진 서비스를 구축, 실행하는 순서를 관리할 수 있는 기능이며, YAML 파일로 작성된다. 빌드 명령을 추가하면 docker compose는 DockerFile을 사용한다. Docker compose는 앱이 실행되는 동안 컨테이너를 관리하는 역할을 한다. 다음은 docker-compose.yml 의 예시이다. version: "3.9" # 버전마다 지원 항목이 크게 다르기 때문에 필수 기재 services: web: # 서비..
Docker Volume
Docker Volume
2023.08.27🐳 Docker 시리즈 살펴보기 🐳 1. Docker와 Container 2. Dockerfile과 Docker Image ➡️ 3. Docker Volume 4. Docker Network 5. Docker Compose 🐳 Docker Volume 이란? 호스트의 파일 시스템을 컨테이너에 마운트 시켜 컨테이너가 삭제되어도 데이터가 남아있게 하는 것이다. 마운트란, 대상을 연결해 운영체제 또는 소프트웨어의 관리 하에 두는 일을 말한다. (ex. usb 연결) Docker를 사용할 때, 데이터를 저장하는 방법에는 volume, bind mounts, tmpfs 3가지 방법이 있다. Data가 Docker Host 내에서 '어디에 존재하는지'에 따라 구분하며, docker에선 volume을 권장한다. ✅ ..
Docker Network
Docker Network
2023.08.27🐳 Docker 시리즈 살펴보기 🐳 1. Docker와 Container 2. Dockerfile과 Docker Image 3. Docker Volume ➡️ 4. Docker Network 5. Docker Compose 도커는 목적에 따라 다양한 종류의 네트워크 드라이버를 지원한다. 여러 종류의 드라이버가 있지만 많이 사용하는 네트워크 드라이버는 다음과 같다. bridge : 하나의 호스트 컴퓨터 내에서 여러 컨테이너들이 서로 소통할 수 있게 해준다. host : 호스트 컴퓨터와 동일한 네트워크에서 컨테이너를 실행할 수 있다. overlay : 여러 호스트에 분산되어 돌아가는 컨테이너들 간에 네트워킹을 위해 사용한다. 🐳 Docker의 네트워크 구조 컨테이너는 외부와 통신하기 위해 2개의 네트워크 인..