개발공부 20

[원티드 25.3 프리온보딩 3회차]타입 시스템, 테스트 코드 기준

📌 발표 요약 (타입 시스템과 트레이드오프)1. JavaScript vs TypeScript의 타입 시스템 비교구분JavaScriptTypeScript타입 시스템동적 타입 (Dynamic), 약타입 (Weakly Typed)정적 타입 (Static), 강타입 (Strongly Typed)타입 검사 시점런타임 (Runtime)컴파일 타임 (Compile Time)형 변환암묵적 형변환 허용 (암묵적 변환 다수)명시적 형변환 필요 (타입 명확)예시"2" + 3 // "23" (문자열 덧셈됨)add(2, "3") 에러 (형 일치하지 않음)결과 예측 가능성낮음 (예상 외의 결과 많음)높음 (형 검사로 안정성 확보)2. Typing - Static vs Dynamic / Strong vs Weak기준설명Stati..

[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

[프로그래머스]옹알이(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..

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

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

개발공부 2025.02.10

[python,Flask]Flask의 @after_this_request 데코레이터 사용법

1. @after_this_request란?Flask에서 @after_this_request 데코레이터는 특정 뷰 함수가 실행된 후, 응답을 반환하기 직전에 추가적인 처리를 할 수 있도록 해주는 기능입니다.이는 요청이 끝난 후 임시 파일을 삭제하거나, 특정 로그를 남기는 등의 작업을 수행할 때 유용하게 사용할 수 있습니다.2. 기본 사용법@after_this_request는 뷰 함수 내에서 정의되어야 하며, 하나의 인자로 응답 객체 (response)를 받는 내부 함수를 필요로 합니다.from flask import Flask, request, jsonify, send_file, after_this_requestimport osimport tempfileapp = Flask(__name__)@app.ro..

개발공부 2025.02.10

[python]자바스크립트와 파이썬의 비동기 처리 방식 비교

비동기 프로그래밍은 프로그램이 블로킹 없이 여러 작업을 동시에 실행할 수 있도록 하는 중요한 개념입니다. 자바스크립트와 파이썬 모두 비동기 처리를 지원하지만, 방식이 다릅니다. 이번 글에서는 자바스크립트와 파이썬의 비동기 처리 방식의 차이점을 비교해보겠습니다.1. 자바스크립트의 비동기 처리자바스크립트는 싱글 스레드 이벤트 루프(Event Loop) 기반의 비동기 모델을 사용합니다. 이는 비동기적으로 실행되는 코드가 별도의 스레드에서 실행되지 않고, 이벤트 루프를 통해 관리된다는 것을 의미합니다.1.1 콜백 함수 (Callback)가장 기본적인 비동기 처리 방식은 콜백 함수입니다.console.log("Start");setTimeout(() => { console.log("Async Task Done..

개발공부 2025.02.10

[개발 고민]프레임워크를 사용할 것인가, 라이브러리를 조합할 것인가?

🚀 고민의 시작: 프레임워크가 항상 최선인가?웹 개발을 할 때, 우리는 흔히 프레임워크(Framework) 를 사용할지, 아니면 필요한 라이브러리(Library)를 조합해서 직접 설계할지 고민하게 된다.나는 처음에 프레임워크가 빠르고 편리한 해결책이라고 생각했지만, 점점 의문이 들기 시작했다. "꼭 이 방식을 따라야만 할까?" "필요한 기능만 쓰고 싶은데, 왜 강제적인 구조를 따라야 하지?" 라는 고민이 생겼다.프레임워크는 개발 속도를 높여주고, 팀원들이 일관된 방식으로 개발하도록 도와주지만, 때로는 불필요한 기능까지 강제하고 개발의 자유도를 제한하기도 한다.반면, 라이브러리 기반 접근법은 더 유연한 개발이 가능하지만, 직접 모든 것을 구성해야 하는 부담이 있다. 그렇다면, 어떤 경우에 프레임워크를 사..

개발공부 2025.02.10

try catch finally 는 항상 비동기를 기다리지 않는다

개요JavaScript의 try...catch...finally 구문을 사용할 때, finally 블록이 항상 비동기 코드가 끝날 때 실행된다고 착각하는 경우가 많다. 하지만 finally 블록은 try가 종료되면 즉시 실행되며, 내부의 비동기 코드가 완료되길 기다리지 않는다. 이를 이해하지 못하면 로딩 상태 관리나 비동기 작업의 순서를 제어하는 데에서 문제가 발생할 수 있다.문제 상황아래의 슈도코드를 살펴보자. 이 코드는 네트워크 요청을 수행한 후, 데이터를 다운로드하는 동안 로딩 상태를 표시하려는 의도로 작성되었다.function downloadFile() { setLoading(true); // 로딩 시작 try { fetchDataFromServer() // 비동기 요청 .the..

host, host 환경의 의미

인터넷에서 호스트는, 인터넷을 통해 다른 컴퓨터들과 쌍방향 통신이 가능한 컴퓨터를 말한다. 호스트는 특정한 호스트번호를 갖는데, 이는 네트웍 번호와 합해져서, 고유의 IP 주소를 이루게된다. 인터넷 서비스 제공업체를 통한 PPP 사용자의 경우에는, 접속되어있는 동안에만 고유한 IP 주소를 갖게되며, 그 시간동안은 해당 사용자의 컴퓨터도 하나의 호스트가 되는 것이다. 이러한 맥락에서 보면, 호스트란 네트웍의 하나의 노드라고 볼 수도 있다. IBM이나 기타 다른 메인프레임 컴퓨터 환경에서, 호스트란 하나의 메인프레임 컴퓨터를 말한다 (요즘은 이런 컴퓨터를 '대형 서버'라고 부른다).이 상황에서 메인프레임은 단말기가 부착되어 있으며, 메인프레임은 이 단말기에게 서비스를 제공하는 호스트가 된다 (여기서 호스트는..

개발공부 2022.05.21