2025/02 15

[React,최적화]React에서 useEffect 없이 상태값 자동 업데이트 이해하기

1. 상태값이 연산될 경우, useEffect가 필요 없다React에서는 useState의 값이 변경되면 자동으로 컴포넌트가 리렌더링되며, 내부의 연산도 함께 업데이트됩니다. 따라서 상태 값을 기반으로 하는 연산은 별도의 useEffect 없이도 자동으로 반영됩니다.✅ 필요 없는 경우 (자동 업데이트)useState 값이 변경되면, 이를 기반으로 한 변수도 자동으로 업데이트됩니다.const [count, setCount] = useState(0);const doubled = count * 2; // 자동 업데이트count가 변경될 때마다 doubled 값도 새롭게 계산되므로 useEffect가 필요 없습니다.또한, 리스트 필터링과 같은 경우에도 useEffect 없이 상태를 기반으로 한 연산을 바로 사용..

개발공부/React 2025.02.22

[dfs] 프로그래머스 피로도 문제 풀이

1. 재귀방식 DFS(깊이 우선 탐색) 활용DFS를 사용하면 모든 방문 순서의 경우를 탐색할 수 있습니다.현재 던전을 방문할 수 있는지 확인합니다.방문했다면 피로도를 갱신하고 다음 던전 탐색을 진행합니다.탐색이 끝난 후 원래 상태로 되돌리는 백트래킹을 수행합니다.2. 반복문을 활용한 DFS (스택을 사용한 방법)재귀 호출 없이 반복문과 스택을 활용하여 DFS를 구현할 수도 있습니다.stack을 사용하여 DFS 탐색 상태(현재 피로도, 방문한 던전 개수, 방문 여부)를 저장합니다.DFS처럼 탐색을 진행하되, 탐색 상태를 스택에 저장하면서 모든 경로를 탐색합니다.최대로 방문할 수 있는 던전 개수를 구합니다.DFS 재귀 풀이function solution(k, dungeons) { let maxVisitCo..

[프로그래머스]옹알이(1)

https://school.programmers.co.kr/learn/courses/30/lessons/120956 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr내 답function solution(babbling) { var answer = 0; let count = 0 for(i=0;i  다른 사람 풀이(의도에 맞는) 더보기더보기function solution(babbling) { var answer = 0; const regex = /^(aya|ye|woo|ma)+$/; babbling.forEach(word => { if (regex.test(word)) answer+..

[Javascript]JavaScript 이터러블과 이터레이터

JavaScript에서 데이터를 순회할 때 이터러블(iterable)과 이터레이터(iterator) 개념을 이해하는 것이 중요합니다. for...of, 스프레드 연산자(...), Array.from() 등이 이터러블 프로토콜을 기반으로 동작하기 때문입니다. 오늘은 이터러블과 이터레이터의 개념부터, 내부 동작 방식, 그리고 실전 예제까지 확실하게 이해해보겠습니다! 🔥1️⃣ 이터러블(Iterable)과 이터레이터(Iterator)란?✅ 이터러블(Iterable) 객체이터러블 객체란 Symbol.iterator 메서드를 구현한 객체입니다. 즉, Symbol.iterator를 호출하면 이터레이터(Iterator) 객체를 반환해야 합니다.const myIterable = { data: ['A', 'B', 'C..

[프로그래머스]정수를 나선형으로 배치하기

https://school.programmers.co.kr/learn/courses/30/lessons/181832 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krfunction solution(n) { //1. 배열초기화 const answer = new Array(n).fill(0).map(()=>[...Array(n).fill(0)]) let dir = 'r' //2. 채우기 //위치 변경해가면서 채우기 // rdlu let x = 0; let y = 0; for(i=1;i=1 && answer[y][x-1] == 0){ ..

[aws ec2, crontab]자동 재배포 도입 후기

개요EC2 서버가 부하로 인해 MySQL과의 연결이 끊어지는 문제를 해결하기 위해 주기적으로 서비스 상태를 확인하고, 필요 시 자동으로 재배포하는 스크립트를 도입하였습니다. 이 과정에서 monitor_deploy.sh를 작성하고, cron을 활용하여 주기적으로 실행하도록 설정하였습니다.1. monitor_deploy.sh 스크립트 작성내용#!/bin/bash# 설정URL="http://localhost:5000" # 헬스체크할 URLDEPLOY_SCRIPT="/home/ubuntu/deploy_test/scripts/deploy.sh" # 실행할 배포 스크립트LOG_FILE="/home/ubuntu/deploy_test/monitor.log" # 로그 파일..

개인프로젝트 2025.02.10

[python,Flask]임시 파일 생성 및 처리 방식 비교

파일을 생성하고 반환하는 방식은 웹 애플리케이션에서 자주 사용되는 패턴입니다. 현재 사용하고 있는 방식은 tempfile.mkdtemp()를 사용하여 임시 디렉토리를 만들고, 해당 디렉토리에 파일을 저장한 후 반환하는 구조입니다. 이 방법이 일반적으로 사용되는지, 그리고 대체 방법과 비교했을 때의 장단점을 정리해보겠습니다.1. 현재 방식 (tempfile.mkdtemp())✅ 장점보안성 확보임시 디렉토리를 생성하여 외부 접근을 방지할 수 있음.OS가 제공하는 임시 저장소를 사용하므로, 별도의 관리가 필요 없음.다중 사용자 처리 가능각 요청마다 별도의 디렉토리를 생성하므로, 여러 사용자가 동시에 요청해도 파일이 충돌할 가능성이 낮음.자동 삭제 가능@after_this_request를 활용하여 응답이 끝난 ..

카테고리 없음 2025.02.10

[python].pyc 파일이 왜 생기는가?

.pyc 파일은 Python이 소스 코드를 바이트 코드(bytecode)로 컴파일한 결과물입니다.Python은 스크립트 언어이지만 실행 속도를 향상시키기 위해 .py 파일을 직접 실행하는 것이 아니라 내부적으로 바이트 코드(.pyc)를 생성하여 실행합니다..pyc 파일은 __pycache__ 폴더에 자동으로 저장됩니다.파이썬 인터프리터가 실행될 때 소스 코드(.py)가 변경되지 않았다면, 기존의 .pyc 파일을 사용하여 속도를 높입니다..pyc 파일을 git에 포함해야 할까?No!.pyc 파일은 Python이 자동으로 생성하는 캐시 파일이므로, Git에 포함할 필요가 없습니다.오히려 Git에서 .pyc 파일을 추적하면 불필요한 파일이 쌓이고, 환경마다 다른 .pyc 파일이 생성될 수 있기 때문에 충돌을 ..

개발공부 2025.02.10

[diykitten] 사용하고 있는 파이썬 라이브러리 정리

Python을 사용하여 다양한 기능을 개발하면서 여러 개의 모듈을 추가하게 되었다. 이미지 처리, PDF 생성, S3 파일 관리, 웹 API 개발 등 여러 요소를 다루면서, 각 모듈이 프로젝트에서 어떤 역할을 하는지 정리하고, 왜 추가하게 되었는지 설명하고자 한다.1. Flask - 웹 API 개발✨ 추가 이유웹 API를 통해 클라이언트와 서버 간 데이터를 주고받기 위해 Flask를 사용했다. Flask는 가볍고, 빠르게 REST API를 만들 수 있는 프레임워크로, 프로젝트의 핵심 백엔드 역할을 한다.🔍 사용 예시@app.route('/generate-png/', methods=['GET'])def generate_png_api(file_id): return send_file(png_path, ..

개인프로젝트 2025.02.10