리눅스를 사용할 때, 자주 접하게 되는 파일 압축 방식 중 대표적인 것이 tar나 tar.gz 형식입니다. 보통 프로그램 배포나 소스코드, 데이터 백업을 목적으로 흔히 사용됩니다. 이번에는 자주 쓰이는 tar 명령어의 옵션들과 그 사용 방법을 정리해 보겠습니다.📝 기본 명령어 예제 정리리눅스에서는 주로 tar 명령어를 통해 파일이나 폴더를 묶거나 압축 및 해제할 수 있습니다.1️⃣ tar로 압축하기tar -cvf [압축파일명.tar] [대상폴더명]예시: abc라는 폴더를 aaa.tar로 압축하고 싶다면,tar -cvf aaa.tar abc2️⃣ tar 압축 해제하기tar -xvf [압축파일명.tar]예시: aaa.tar 파일의 압축을 풀고 싶다면,tar -xvf aaa.tar3️⃣ tar.gz로 압축하..
오라클 데이터베이스를 사용하다 보면 테이블의 권한 및 스키마 정보를 확인해야 할 일이 많습니다. 이번 포스팅에서는 자주 사용되는 일반적인 명령어를 통해 데이터베이스 테이블 정보와 권한 정보를 쉽게 확인하는 방법을 알아보겠습니다.1. 사용자에게 부여된 테이블 권한 조회현재 사용자(세션)에 부여된 테이블 관련 권한을 확인하려면 다음 쿼리를 입력합니다.SELECT * FROM USER_TAB_PRIVS;설명:USER_TAB_PRIVS는 현재 접속한 사용자 계정이 소유하거나 다른 사용자로부터 권한을 부여받은 테이블의 정보를 보여줍니다.조회 결과에는 권한이 있는 테이블명, 부여된 권한 내용, 권한을 부여한 사용자 등의 세부 정보가 표시됩니다.2. 모든 사용자들의 테이블 정보 조회서버 전체의 모든 사용자 계정이 생..
개발을 진행하다 보면 처음에는 잘 작성된 코드라고 생각되었지만, 시간이 지나면서 복잡해지고 유지보수가 까다로운 코드로 변하는 경우가 많습니다. 이때 꼭 필요한 작업이 바로 리팩토링(Refactoring) 입니다.리팩토링이란 기존 코드의 기능은 그대로 유지하면서 코드 구조 및 가독성을 향상시키는 작업입니다. 이번 글에서는 개발자가 꼭 알아야 할 깨끗한 코드를 위한 리팩토링 핵심 테크닉 10가지를 알려드리겠습니다.1️⃣ 의미 있는 이름 짓기 (Rename Method / Rename Variable)의미 없는 이름은 코드의 가독성을 떨어뜨리고 변경 시에도 혼란을 유발할 수 있습니다. 변수와 메서드에 명확한 의도가 드러나는 이름을 사용하면 코드를 더욱 쉽게 읽고 유지보수할 수 있습니다.✅ 예시:int d; →..
많은 서비스 개발자들이 DB의 기본 기능인 auto_increment를 통해 손쉽게 숫자형 ID를 생성하여 사용하고 있었습니다. 그러나 DynamoDB나 특정 환경에서는 연속적 숫자(auto_increment)를 제공하지 않아 문제가 발생합니다.그리고 이러한 상황에서 무작위(alphanumeric) 문자열을 ID로 쓰면서 중복을 방지하는 로직이 필요합니다.이 글에서는 Java 코드로 중복 방지를 위한 간단한 알고리즘과 실제 DB 연동 예시를 소개합니다.📌 이런 요구 사항에서 유용한 해결 방법:알파벳 대소문자 및 숫자로 2자리부터 시작하여 중복되지 않을 때까지 값을 만들어냅니다.자리수가 모두 소진(2자리 문자열의 모든 조합이 사용된 경우)되면 3자리, 4자리 등으로 점진적으로 증가합니다.💡 알고리즘 원..
안녕하세요, 개발을 처음 접하거나 웹 개발을 본격적으로 시작하는 분들이라면 자주 들었을 REST API(Representational State Transfer API)에 대해 알기 쉽게 설명해 드리겠습니다.📌 REST API의 개념 📌REST API란, 클라이언트와 서버 간에 데이터를 주고받기 위한 규칙을 정의한 디자인 설계 방식을 의미합니다. 웹 표준 프로토콜(주로 HTTP)을 사용해서 서로 통신하며, 자원을 관리(생성, 조회, 수정, 삭제)하는 방식이죠.웹 개발에서 거의 필수적으로 사용되는 이 REST API의 특징과 구성 요소, 사용법 등을 차근차근 알아보겠습니다.📌 REST API의 5가지 핵심 원칙 📌REST API는 기본적으로 아래의 5가지 핵심 원칙을 따릅니다.클라이언트-서버 구조(..
🔹 코틀린 학습 자료 추천1. 공식 문서 & 가이드코틀린 공식 문서 → 코틀린의 기본 문법부터 고급 기능까지 설명Kotlin for Java Developers (JetBrains) → 코틀린 연습 문제 제공스프링 공식 문서 (Kotlin) → 스프링과 코틀린을 함께 사용하는 방법2. 온라인 강의Fast Campus - Kotlin & Spring Boot 강의 → 한국어로 된 유료 강의, 실무 적용 중심Inflearn - 코틀린 기초부터 실전까지 → 무료 및 유료 강의 다양함Udemy - Kotlin for Beginners → 영어지만 자막 지원, 깊이 있는 강의3. 유튜브 강의 (무료)노마드 코더 Kotlin 강의 → 초보자 친화적인 설명백기선님의 Kotlin 강좌 → 자바 개발자를 위한 Kotl..
클린 코드(Clean Code)란 읽기 쉽고, 유지보수가 쉬우며, 효율적인 소프트웨어 코드를 의미합니다. 로버트 C. 마틴(일명 "아저씨" 또는 "Uncle Bob")이 저서 Clean Code에서 강조한 원칙과 기법을 정리하면 다음과 같습니다.1️⃣ 좋은 코드의 특징✔ 가독성(Readability) – 누구나 쉽게 이해할 수 있어야 한다.✔ 간결성(Simplicity) – 불필요한 요소가 없고, 최소한의 코드로 표현된다.✔ 명확성(Clarity) – 코드가 하는 일을 직관적으로 이해할 수 있어야 한다.✔ 재사용성(Reusability) – 중복을 줄이고, 모듈화를 통해 재사용 가능해야 한다.✔ 테스트 가능성(Testability) – 단위 테스트가 쉽게 작성될 수 있어야 한다.2️⃣ 클린 코드 작성 원..
최근 출시된 MMORPG 레전드 오브 이미르는 웅장한 세계관과 그래픽으로 많은 기대를 모았지만, 실제 플레이 경험은 다소 아쉬움이 남는 부분이 많다. 전체적으로 게임의 기본적인 틀은 나쁘지 않지만, 몇 가지 치명적인 단점이 유저들의 흥미를 반감시키고 있다.공속이 지나치게 느린 전투 시스템MMORPG에서 전투의 속도는 게임의 몰입도를 결정짓는 중요한 요소 중 하나다. 하지만 레전드 오브 이미르는 기본 공격 속도가 지나치게 느려서 답답함을 느끼게 한다. 액션성이 중요한 게임에서 공속이 느리면 전투가 지루하게 느껴질 수밖에 없다. 이는 특히 자동 사냥을 선호하는 유저들에게도 불만 요소가 될 가능성이 높다.단순하지 않은 퀘스트, 그러나 재미도 부족퀘스트 시스템은 MMORPG의 핵심 콘텐츠 중 하나다. 단순한 반..