전체 글
-
버전관리도구 🔎🗃️ Git 2025. 7. 30. 17:18
버전 관리 도구에 대한 이해와 Git을 설치하는 방법을 설명하고 Git 탄생 배경, Git을 사용하는 이유에 대해서 다시 학습을 하고자 합니다.🔍 버전 관리란? (Version Control System)버전 관리 시스템은 파일 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템이다. 🤔 왜 버전관리를 해야하지..?무언가 잘못되었다면 되돌릴 수 있다. (복구)시간에 따라 수정 내용을 비교해 볼 수 있다.누가 문제를 일으켰는지도 추적하고 누가 언제 만들어낸 이슈인지 확인할 수 있다.작업 내용을 병합할 수 있다. 🖥️ 로컬 버전 관리디렉토리로 파일을 복사하면서 버전을 관리보고서.doc 최종_보고서.doc 진짜_최종_보고서.doc진짜_진짜_최종_보고서.doc ⚠️ 문제..
-
자바스크립트 비동기와 이벤트 루프🍌 자바스크립트 2025. 7. 29. 00:43
🔍 동기와 비동기동기와 비동기는 작업의 실행 방식을 설명하는 개념요청한 작업에 대해 완료 여부 동기: 한 작업이 끝나야 다음 작업이 시작(순차적 처리)이전 작업이 끝날 때까지 다음 작업은 대기상태 비동기: 한 작업이 끝나기를 기다리지 않고 다음 작업을 실행할 수 있음이전 작업이 끝날 때까지 대기하지 않음 🏃 자바스크립트 런타임 환경 - 웹 브라우저 (Chrome) 구성 요소역할Call Stack함수 실행 순서를 저장하는 스택 (동기 코드 실행)Web APIs타이머, DOM, AJAX 등 브라우저 혹은 Node.js가 제공하는 비동기 기능Task QueueWeb API 완료 후 콜백이 대기하는 곳 (→ Call Stack이 비면 실행됨)Event LoopCall Stack이 비었는지 계속 확인하고 Ta..
-
🔍 함수와 클로저🍌 자바스크립트 2025. 7. 27. 22:31
⭐ 함수와 클로저항목함수클로저정의특정 작업을 수행하도록 정의된 코드의 묶음선언시 렉시컬 스코프을 기억하는 함수역할코드 재사용, 모듈화, 추상화 등외부 함수의 변수를 기억하고 유지할 수 있음형태function foo() { ... } 또는 () => { ... }외부 함수 내에서 선언된 함수이며 외부 변수에 접근할 수 있는 함수사용 예add(a, b) { return a + b; }function outer() { let x = 1; return function() { return x; }; } 📕 클로저(Closure)란?💡 클로저는 함수가 외부 스코프의 변수에 접근할 수 있는 기능즉, 함수가 선언될 당시의 스코프를 기억하고 있는 함수. 👍 장점👊 장점1. 데이터를 보존할 수 있다.클로저 함수는 ..
-
함수형 프로그래밍이란?!💻 computer science/⚙️ 프로그래밍 2025. 7. 27. 21:41
프로그래밍 패러다임의 큰 흐름 속에서 함수형 프로그래밍이 무엇이며 왜 중요하고 어떤 특징을 가지는지 깊이 있게 살펴보겠습니다.특히, 함수형 프로그래밍의 핵심 개념들을 다양한 예시와 함께 쉽게 이해할 수 있도록 구성했습니다. 🎯 프로그래밍 패러다임이란?프로그래밍 패러다임은 프로그래머에게 프로그래밍의 관점을 갖게 해 주고 결정하는 역할을 한다. 예를 들어 객체지향 프로그래밍은 프로그래머들이 프로그램을 상호작용하는 객체들의 집합으로 볼 수 있게 하는 반면 함수형 프로그래밍은 상태값을 지니지 않는 함수값들의 연속으로 생각할 수 있게 해준다.- 위키피디아: 프로그래밍 패러다임 크게 보면 프로그래밍 패러다임은 선언형(Declarative) 과 명령형(Imperative) 두 가지로 나뉩니다. 1️⃣ 명령형 프로그..
-
네이버 부스트캠프 웹・모바일 10기 챌린지 1주차 / 2주차 회고네이버 부스트캠프 웹・모바일 10기 2025. 7. 27. 14:27
네이버 부스트캠프 10기 웹/모바일 챌린지 과정에 합류한 후 과정의 절반이 지나갔습니다..!!2주동안의 챌린지 과정에서 제가 느끼고 배운점을 정리해보려고 합니다.👏 챌린지 과정을 시작하며 챌린지 과정에 합류하면서 처음 부스트캠프에 지원했던 이유와 나의 목표를 다시 되돌아보게 되었습니다.대학교에서 처음 프로그래밍을 접하고 콘솔에 “Hello World” 를 출력했을 때 화면에 내가 입력한 문장이 뜨는 그 순간의 벅찬 감정을 아직도 기억합니다. 아주 단순한 출력이었지만 그 짧은 문장 하나에 “내가 무언가를 만들어냈다”는 기쁨이 담겨 있었고 저는 개발이라는 세계에 발을 들이게 되었습니다. 이후, 개발자로 취업하기 위한 CS 공부를 하고 포트폴리오를 채우기 위한 개인 및 팀 프로젝트를 이어왔습니다. 하지만 어..
-
Flyway 이용기🧑🏻💻 프로젝트/motimo 2025. 6. 15. 15:18
✍️ 상황최근 진행 중인 프로젝트에서 TodoEntity와 TodoResultEntity 간의 관계를 어떻게 표현할지에 대해 고민할 일이 있었습니다.TodoResultEntity는 TodoEntity와 1:1 관계를 가지고 있지만 ORM 상에서는 연관관계 매핑을 하지 않고 단순히 todoId를 저장하는 방식을 택했습니다. @Column(name = "todo_id", nullable = false)private UUID todoId;연관관계를 명시적으로 선언하는 대신 ID를 직접 관리하면서 느슨하게 연결하는 구조로 설계 ❗ 팀원 리뷰에서 지적된 문제이 설계에 대해 팀원으로부터 다음과 같은 리뷰를 받았습니다. TodoResult와 Todo는 연관 관계를 맺어주는 게 좋지 않을까요?ID만 저장하는 방식으로 ..
-
UUID v4 / UUID v7🧑🏻💻 프로젝트/motimo 2025. 5. 30. 16:25
이번 프로젝트에서 UUID를 기본 키(PK)로 사용하기로 결정한 이후 어떤 성능적인 영향이 있을지에 대한 고민을 바탕으로 이 글을 작성하게 되었습니다.저희 프로젝트에서 사용하는 관계형 데이터베이스(RDB)는 PostgreSQL입니다. ✅ PostgreSQL의 Index는 기본적으로 B-Tree🐘 PostgreSQL 공식 문서 에 따르면PostgreSQL은 여러 인덱스 타입을 제공하지만 기본적으로 CREATE INDEX는 B-tree 인덱스를 생성합니다. B-tree는 대부분의 일반적인 상황에 적합하며 정렬 가능한 타입에 가장 효과적으로 동작합니다.📌 Hibernate에서 UUID 생성 방식Spring Data JPA에서 아래와 같이 UUID를 사용하는 경우@Entitypublic class UserE..
-
CQS / CQRS 패턴 적용기🧑🏻💻 프로젝트/motimo 2025. 5. 25. 18:17
⚠️ 작업 배경 및 문제 상황public class AuthService { private final UserService userService; @Transactional public User loginFromOAuth2(OAuth2UserInfo oAuth2UserInfo, String registrationId) { return userService.existsByEmail(oAuth2UserInfo.getEmail()) ? updateExistingUser(oAuth2UserInfo) : registerNewUser(oAuth2UserInfo, registrationId); }} 🌟 팀원의 피드백..! ?..