Develop 162

GitLab에서 커밋 취소하는 방법: 완벽 가이드 🔥

개발하다 보면 실수로 잘못된 내용을 커밋할 때가 있습니다. "아, 이거 커밋하면 안 됐는데!" 😱 걱정 마세요. GitLab에서 이미 커밋한 내용을 취소하는 방법은 여러 가지가 있습니다. 상황에 따라 가장 적절한 방법을 선택하세요!✅ 1. 가장 최근 커밋을 로컬에서만 취소하는 방법(git reset --soft HEAD~1)✅ GitLab에 push하기 전에 커밋을 취소하려면? git reset --soft HEAD~1이렇게 하면 최근 커밋이 삭제되지만, 변경된 파일은 그대로 유지됩니다. 즉, 커밋만 취소되고 파일은 남아 있으므로 다시 수정 후 커밋하면 됩니다!📌 스테이징까지 취소하고 싶다면? git reset HEAD~1이 명령어를 사용하면 스테이징된 파일도 취소되지만, 코드 변경 내용은 그대로 남..

Develop 2025.04.03

Flutter에서 YouTube 검색 및 영상 조회 방법 총정리 (2024)

YouTube API를 사용하지 않고 Flutter에서 YouTube 검색을 구현하는 방법을 찾고 있나요? 아니면 YouTube API 사용량 초과 오류를 해결하고 싶으신가요? 🤔오늘은 YouTube API 없이 검색하는 방법, youtube_explode_dart 패키지를 활용한 영상 조회 방법, 그리고 검색 필터 적용법까지! 최신 YouTube 검색 구현 방법을 완벽 정리해드립니다. 🚀🔥 1. YouTube API 없이 검색하는 방법 (검색 URL 활용)✅ YouTube 검색 URL 구조YouTube의 기본 검색 URL은 다음과 같습니다:https://www.youtube.com/results?search_query=검색어하지만 여기에 **특정 조건(필터)**을 추가할 수도 있습니다.🎯 You..

Develop/Flutter 2025.03.31

Spring Interceptor를 활용한 페이지 이동 추적 및 제어

웹 애플리케이션을 개발할 때, 사용자가 어떤 페이지에서 이동했는지 추적하고 특정 경로로 이동했을 때 제어하는 기능이 필요할 때가 있습니다. 예를 들어, 다음과 같은 요구사항이 있다고 가정해 보겠습니다.사용자가 A 페이지 → B 페이지 로 이동한 경우 정상적으로 B 페이지를 표시한다.사용자가 A → B → C → B(뒤로 가기) 로 이동하면 오류 페이지로 보내고 싶다.이러한 동작을 구현하기 위해 Spring의 Interceptor 를 활용할 수 있습니다. Interceptor를 사용하면 사용자의 이전 페이지 정보를 세션에 저장하고, 특정 페이지에서 접근을 제어 할 수 있습니다.🚀 Spring Interceptor를 이용한 해결 방법1️⃣ Interceptor를 활용한 이전 페이지 저장 및 확인Spring..

Develop/JAVA 2025.03.26

현대 JavaScript 마스터하기: ES6+와 함수형 프로그래밍의 완벽 가이드

소개: 왜 지금 최신 JavaScript를 배워야 하는가?2015년 ES6(ECMAScript 2015)의 등장은 JavaScript 역사에서 가장 혁명적인 변화였습니다. 그 이후로도 매년 새로운 기능이 추가되면서 JavaScript는 더욱 강력하고 표현력이 풍부한 언어로 발전해왔습니다. 하지만 여전히 많은 개발자들이 이전 방식의 코딩에 머물러 있습니다.이 글을 읽어야 하는 이유:💼 취업 시장에서 경쟁력 확보 (최신 JS 기술은 필수 요구사항)🚀 생산성 30% 이상 향상 가능🔍 가독성과 유지보수성이 뛰어난 코드 작성 능력 획득🛡️ 더 적은 버그와 예상치 못한 동작 방지자, 이제 현대 JavaScript의 세계로 뛰어들어 봅시다!ES6+ 핵심 문법 총정리1. 화살표 함수: 간결함의 극치// 기존 방..

Develop 2025.03.26

PostgreSQL 윈도우 함수: 복잡한 분석을 간단하게 해결하는 강력한 기능

윈도우 함수란?데이터베이스에서 복잡한 분석 쿼리를 작성해야 할 때, 여러 개의 서브쿼리나 임시 테이블을 사용해 본 경험이 있을 것입니다. 특히 각 행의 데이터와 함께 집계 결과를 동시에 보여줘야 하는 경우에는 더욱 그렇습니다. PostgreSQL의 **윈도우 함수(Window Functions)**는 이러한 복잡한 문제를 간단하게 해결해 줍니다.윈도우 함수는 SQL:1999 표준에 도입되었으며, PostgreSQL 8.4 버전부터 지원하기 시작했습니다. 이 함수들은 행 집합("윈도우")에 대한 계산을 수행하면서도 각 행의 개별성을 유지한다는 특징이 있습니다. 일반 집계 함수가 여러 행을 하나의 행으로 축소하는 것과 달리, 윈도우 함수는 원래 행을 그대로 유지하면서 추가 계산을 수행합니다.-- 일반 집계 ..

Develop 2025.03.20

[JavaScript] 숫자 콤마 표현할 때 소수점 표시하는 방법

오늘은 JavaScript에서 숫자 포맷팅 시 소수점 자릿수를 강제로 표시하는 방법에 대해 알아보겠습니다. 기본적으로 JavaScript의 toLocaleString() 메서드는 불필요한 소수점 이하 0을 생략하는 특성이 있습니다. 예를 들어, 아래와 같이 12345.0을 포맷팅하면:const value = 12345.0;console.log(value.toLocaleString('ko-KR')); // 출력: "12,345" 숫자 12345.0은 소수점 이하가 0이기 때문에 “12,345”로만 표시됩니다.하지만 때때로 숫자를 항상 소수점 한 자리까지, 즉 “12,345.0”과 같이 보여주고 싶을 때가 있습니다. toLocaleString() 옵션 활용하기 JavaScript의 toLocaleString..

Develop 2025.03.20

[JavaScript] 소수점과 정수를 연산 했을 때 소수점으로 결과 출력

JavaScript에서는 모든 숫자가 IEEE-754 부동소수점 방식의 Number 타입으로 처리됩니다. 그래서 내부적으로는 소수점이 있는 숫자라도, 연산 결과가 정수처럼 보일 때는 불필요한 “.0” 부분이 생략되어 출력됩니다. 오늘은 이런 상황에서 정수 결과에 소수점 표시(예: 694993.0)를 강제로 출력하는 방법에 대해 알아보겠습니다. 기본 원리 JavaScript의 Number 타입은 내부적으로 모두 부동소수점 숫자입니다.예를 들어, 아래와 같이 연산하면 실제 값은 부동소수점이지만, 출력 시에는 불필요한 0이 생략됩니다.const a = 744993.0;const b = 50000;const result = a - b;console.log(result); // 출력: 694993 위 코드의 결..

Develop 2025.03.20

[JavaScript] 선택적 체이닝(Optional Chaining) 연산자: 코드를 더 안전하고 간결하게 만드는 방법

오늘은 JavaScript에서 여러분의 코드를 더 안전하고 깔끔하게 만들어 줄 강력한 문법 기능인 선택적 체이닝(Optional Chaining) 연산자에 대해 알아보겠습니다.문제 상황: 중첩된 객체의 안전하지 않은 접근JavaScript로 개발하다 보면 이런 상황을 자주 만나게 됩니다:// 사용자 정보를 가져오는 API 응답 (사용자가 주소를 입력하지 않은 경우)const user = { name: "김철수", email: "cheolsu@example.com", // address 속성이 없음};// 사용자의 도시를 표시하려고 시도console.log(user.address.city); // TypeError: Cannot read property 'city' of undefined 위 코드는 ..

Develop 2025.03.19

[Java] 봉인 클래스(Sealed Classes): Java 17의 혁신적인 기능과 예제까지

오늘은 Java 17에서 정식으로 도입된 '봉인 클래스(Sealed Classes)'에 대해 알아보겠습니다. 이 기능은 객체지향 프로그래밍의 상속 구조를 더욱 효과적으로 제어할 수 있게 해주는 흥미로운 기능입니다.봉인 클래스란 무엇인가?봉인 클래스는 클래스 계층 구조를 명시적으로 제한할 수 있게 해주는 Java 17의 새로운 기능입니다. 간단히 말해, 어떤 클래스가 자신을 상속받을 수 있는 하위 클래스들을 제한할 수 있게 해줍니다.기존 Java에서는 클래스를 final로 선언하여 상속을 완전히 막거나, 아무런 제한 없이 누구나 상속할 수 있게 하는 두 가지 극단적인 선택지만 있었습니다. 봉인 클래스는 이 두 가지 사이의 중간 지점을 제공합니다.봉인 클래스의 기본 문법봉인 클래스를 정의하는 기본 문법은 다..

Develop/JAVA 2025.03.19

[Flutter] Google Maps API 설정 및 사용 방법 (Android & iOS)

Flutter에서 Google Maps SDK를 사용하여 Android와 iOS 앱에서 구글 지도를 표시하는 방법을 정리했습니다.이 글에서는 Google Maps API Key 설정 방법과 실제 구글 지도를 띄우는 예제를 다룹니다. ✅ 1. Google Maps API 활성화 및 API Key 생성 Google Maps를 사용하려면 먼저 Google Cloud Console에서 API를 활성화하고 API Key를 생성해야 합니다. 1️⃣ Google Cloud Console에서 API 활성화1. Google Cloud Console에 접속2. 프로젝트 선택 또는 새 프로젝트 생성3. API 및 서비스 → 사용자 인증 정보 → 사용자 인증 정보 만들기 → API 키 클릭4. 생성된 API 키 복사 (AIz..

Develop/Flutter 2025.03.13