본문 바로가기

전체 글234

디자인 패턴 - 정리 서론 디자인 패턴은 협업하는 코드 구조를 설계할 때, 효율적이고 일관된 방식으로 문제를 해결하는 방법론이다. 특히 객체지향 프로그래밍에서 자주 마주치는 설계 문제들을 다룰 때, 디자인 패턴은 검증된 해결책을 반복적으로 재사용할 수 있는 구조를 제시한다. 패턴을 이해하면 코드의 확장성, 유지보수성, 재사용성을 높이는 데 큰 도움이 되며, 동료 개발자들과의 공통 언어 역할도 해준다. 다만, “패턴을 위한 패턴”은 오히려 해악이 될 수 있다. 따라서 단순히 적용하는 데 그치지 않고, 왜 이 구조가 필요한지, 지금 이 상황에 적절한지를 고민하며 활용하는 태도가 중요하다.생성 패턴 (Creational)이름정의특징게임 예시Singleton객체를 오직 하나만 생성하고 전역에서 접근 가능하게 함전역 상태 관리,.. 2025. 6. 30.
디자인 패턴 - 행위 패턴 서론 디자인 패턴은 협업하는 코드 구조를 설계할 때, 효율적이고 일관된 방식으로 문제를 해결하는 방법론이다. 특히 객체지향 프로그래밍에서 자주 마주치는 설계 문제들을 다룰 때, 디자인 패턴은 검증된 해결책을 반복적으로 재사용할 수 있는 구조를 제시한다. 패턴을 이해하면 코드의 확장성, 유지보수성, 재사용성을 높이는 데 큰 도움이 되며, 동료 개발자들과의 공통 언어 역할도 해준다. 다만, “패턴을 위한 패턴”은 오히려 해악이 될 수 있다. 따라서 단순히 적용하는 데 그치지 않고, 왜 이 구조가 필요한지, 지금 이 상황에 적절한지를 고민하며 활용하는 태도가 중요하다.행위 패턴 행위 패턴(Behavioral Patterns)은 객체 간의 책임 분산, 소통 방식, 알고리즘 구조에 초점을 맞춘 디자인 패.. 2025. 6. 30.
디자인 패턴 - 구조 패턴 서론 디자인 패턴은 협업하는 코드 구조를 설계할 때, 효율적이고 일관된 방식으로 문제를 해결하는 방법론이다. 특히 객체지향 프로그래밍에서 자주 마주치는 설계 문제들을 다룰 때, 디자인 패턴은 검증된 해결책을 반복적으로 재사용할 수 있는 구조를 제시한다. 패턴을 이해하면 코드의 확장성, 유지보수성, 재사용성을 높이는 데 큰 도움이 되며, 동료 개발자들과의 공통 언어 역할도 해준다. 다만, “패턴을 위한 패턴”은 오히려 해악이 될 수 있다. 따라서 단순히 적용하는 데 그치지 않고, 왜 이 구조가 필요한지, 지금 이 상황에 적절한지를 고민하며 활용하는 태도가 중요하다.구조 패턴 구조 패턴(Structural Patterns)은 객체나 클래스들을 조합하여 더 큰 구조를 만들 때 사용하는 디자인 패턴군이.. 2025. 6. 30.
디자인 패턴 - 생성 패턴 서론 디자인 패턴은 협업하는 코드 구조를 설계할 때, 효율적이고 일관된 방식으로 문제를 해결하는 방법론이다. 특히 객체지향 프로그래밍에서 자주 마주치는 설계 문제들을 다룰 때, 디자인 패턴은 검증된 해결책을 반복적으로 재사용할 수 있는 구조를 제시한다. 패턴을 이해하면 코드의 확장성, 유지보수성, 재사용성을 높이는 데 큰 도움이 되며, 동료 개발자들과의 공통 언어 역할도 해준다. 다만, “패턴을 위한 패턴”은 오히려 해악이 될 수 있다. 따라서 단순히 적용하는 데 그치지 않고, 왜 이 구조가 필요한지, 지금 이 상황에 적절한지를 고민하며 활용하는 태도가 중요하다.생성 패턴 생성 패턴(Creational Patterns)은 객체를 생성하는 과정을 다루는 디자인 패턴군으로, 어떻게 객체를 만들고, .. 2025. 6. 30.
한국 게임이 재미가 없는 이유 한국 게임은 왜 욕을 먹으면서도 계속 플레이될까?커뮤니티에 들어가 보면 한국 게임 욕이 넘쳐난다.유저들은 화를 내고, 운영진을 비난하고, 업데이트에 불만을 터뜨린다.그런데 이상한 건 그 많은 욕을 하면서도, 다음 날이면 또 같은 게임에 접속하고 있다는 점이다.게임이 싫으면 안 하면 될 텐데, 왜들 그렇게 하면서도 계속 플레이할까?이 현상에는 단순한 감정이 아닌, 경제적이고 과학적인 이유가 숨어 있다.그리고 이는 한국 게임 산업의 구조와 역사, 그리고 수익 모델에 깊이 연결되어 있다.재밌는 게임 vs 하고 싶은 게임모든 게임 회사는 결국 돈을 벌기 위해 움직인다.게임을 잘 만들어야 유저가 붙고, 유저가 붙어야 돈을 벌 수 있다.그런데 여기서 한 가지 흥미로운 사실이 있다.‘재미있는 게임’과 ‘하고 싶은 게.. 2025. 6. 9.
Git에 기록되는 정보들 서론 매우 많은 인원과 함께 팀으로 한 게임을 만들면 여러 잡설이 생긴다. 이를 검토, 검색, 연동 등 다양한 자동화로 프로젝트에 편의성을 높인다. 그러나, 이는 Git이 저장한 정보 이내에서 가능한 것이다. 그렇기에 Git은 무엇을 저장하는 지 알 필요가 있다.1. 커밋 정보 (메타데이터)각 커밋에는 다음과 같은 메타데이터가 포함돼:커밋 해시: 9fceb02 같은 고유 ID (SHA-1)작성자(Author): 코드를 처음 작성한 사람작성 시간: 작성자가 커밋을 만든 시점커밋터(Committer): 실제 저장소에 커밋을 반영한 사람 (리베이스나 PR 병합 시 다를 수 있음)커밋 메시지: 변경 내용을 요약 설명부모 커밋: 현재 커밋이 어떤 커밋에서 파생됐는지 (머지 커밋이면 부모가 2개 이상)2. 트리.. 2025. 6. 1.
SQL 관리 구문 SQL 관리 구문 SQL 관리 구문은 데이터베이스 시스템의 구조와 동작, 보안, 일관성을 유지하고 제어하는 데 핵심적인 역할을 한다. 일반적으로 SQL 명령어는 그 목적과 기능에 따라 네 가지로 분류된다. 데이터 정의어(DDL), 데이터 조작어(DML), 트랜잭션 제어어(TCL), 그리고 데이터 제어어(DCL)이다. 각 구문은 데이터베이스 설계부터 데이터의 입력·수정·삭제, 트랜잭션 처리, 사용자 권한 관리에 이르기까지 데이터베이스 운영 전반에 걸쳐 유기적으로 작동한다. 따라서 이 네 가지 구문의 개념과 역할을 명확히 이해하는 것은 데이터베이스를 안정적이고 효율적으로 관리하는 데 필수적인 요소이다.DML (데이터 조작 언어) DML (Data Manipulation Language)은 데이터베이.. 2025. 5. 24.
SQL 활용 서브쿼리 서브쿼리(Subquery)는 SELECT, INSERT, UPDATE, DELETE 등의 SQL문 내부에서 값을 계산하거나 조건으로 사용하기 위해 포함된 또 다른 SELECT문이다. 즉, 다른 쿼리 안에 포함된 쿼리, 즉 "쿼리 속의 쿼리" 를 의미한다. 보통 괄호 ()로 감싸며, 외부 쿼리(main query)가 서브쿼리의 결과를 사용한다. 서브쿼리 위치에 따라서도 아래와 같이 나뉘기도 한다.SELETE스칼라 서브쿼리FROM인라인 뷰WHERE, HAVING중첩 서브쿼리스칼라 서브쿼리 (Scalar Subquery) 결과가 오직 하나의 값(1행 1열)만 나오는 서브쿼리로 칼럼을 대신하여 사용된다. 주로 SELECT, WHERE, HAVING 절 등에서 값처럼 사용된다. 주된 특징으로는 .. 2025. 5. 24.
SQL 기본 관계형 데이터베이스 관계형 데이터베이스(RDB, Relational Database)는 데이터를 행(Row)과 열(Column)로 이루어진 테이블(Table) 구조로 저장하고, 테이블 간의 관계(Relation)를 통해 데이터를 연결하는 방식의 데이터베이스이다. 대표적으로 RDBMS Oracle, MySQL / MariaDB, SQLite 등이 여기에 속한다. SQL(Structured Query Language)은 관계형 데이터베이스에서 테이블를 만들고, 데이터를 다루고, 사용자 권한과 트랜잭션까지 다루기 위해 사용하는 언어이다. 테이블(Table)하나의 주제(예: 고객, 주문, 상품 등)를 표현하는 구조데이터는 행(Row), 속성은 열(Column)테이블은 스프레드시트처럼 생겼지만, 명확한 제약.. 2025. 5. 24.
반응형