CS 지식

[CS] 개발자 명명법 & IT 용어 총정리

@leem 2025. 3. 11. 23:25

명명법 (Naming Convention)

클래스, 메서드, 기능 명명 규칙

  • 클래스(Class): 명사 사용 → User, OrderService, ProductRepository
  • 메서드(Method): 동사 사용 → getUserInfo(), calculateTotalPrice()
  • 기능(Functionality): 명사 + 동사 → createAccount(), deleteOrder()

대표적인 표기법(Notation)

1. CamelCase

  • 단어를 이어 붙일 때 첫 단어는 소문자로 시작하고, 이후 단어는 대문자로 시작
  • 주로 객체지향 프로그래밍 언어(Java, JavaScript, Kotlin)에서 사용
    ✅ 예시: getUserInfo(), calculateTotalPrice()

2. snake_case

  • 단어를 **언더스코어(_)**로 구분하는 표기법
  • 주로 C, SQL, Python에서 사용
    ✅ 예시: user_name, order_total_price

3. 헝가리안 표기법(Hungarian Notation)

  • 변수명 앞에 접두어를 붙여 데이터 유형이나 역할을 명확히 표시
    ✅ 예시:
    • g_totalCount → 전역 변수 (Global)
    • m_orderId → 클래스 멤버 변수 (Member)
    • s_configPath → 정적 변수 (Static)

IT 용어 정리

소프트웨어 개발 관련 용어

Manual (매뉴얼)

  • 프로그램 사용법과 운영 절차를 정리한 문서

Agile Model (애자일 모델)

  • 변경 사항에 유연하게 대응하며 협업과 반복 개발을 강조하는 개발 방법론
  • 대표적인 방법: Scrum, Extreme Programming(XP)

Backlog (백로그)

  • 개발해야 할 기능이나 요구사항 목록 (우선순위가 매겨진 상태)

Release (릴리즈)

  • 소프트웨어의 일부 기능을 적용한 제품을 배포하는 것

Visibility (가시성)

  • 개발 과정에서 진행 상태를 쉽게 확인할 수 있는 정도

Story (스토리)

  • 백로그에 기록되는 고객의 요구사항을 간단한 시나리오로 표현한 것

System Architecture (시스템 아키텍처)

  • 시스템 내부에서 구성 요소들이 어떻게 상호작용하는지를 정의하는 설계 구조

Core (코어)

  • CPU의 핵심 연산 장치로, 코어 수가 많을수록 처리 성능이 향상됨

Operating System (운영체제, OS)

  • 컴퓨터 자원을 효율적으로 관리하고, 사용자가 컴퓨터를 쉽게 사용할 수 있도록 지원하는 소프트웨어

Middleware (미들웨어)

  • 응용 프로그램과 운영체제 간의 중간 계층에서 데이터를 중개하는 역할을 하는 소프트웨어

Memory Leak (메모리 누수)

  • 프로그램이 사용한 메모리를 해제하지 않아 점점 메모리가 고갈되는 현상

Pair Programming (짝 프로그래밍)

  • 두 명의 개발자가 한 대의 컴퓨터로 협력하여 개발하는 방식

Open Source (오픈 소스)

  • 누구나 자유롭게 수정하고 재배포할 수 있도록 공개된 소프트웨어

DBMS (Database Management System)

  • 데이터베이스를 생성, 관리하고 사용자와 연결해주는 소프트웨어

JDBC (Java Database Connectivity)

  • 자바에서 데이터베이스에 접근하여 데이터를 조회, 삽입, 수정, 삭제할 수 있도록 지원하는 API

WAS (Web Application Server)

  • 웹 서비스의 동적 콘텐츠를 처리하는 서버 (ex: Tomcat, JBoss)

Garbage Collection (가비지 컬렉션)

  • 불필요한 메모리를 자동으로 해제하는 기능

Entity (엔티티)

  • 데이터베이스에서 관리하는 객체(사용자, 주문, 상품 등)

Dependency (종속성)

  • 하나의 모듈이 다른 모듈에 의존하는 관계

Polymorphism (다형성)

  • 같은 인터페이스를 구현한 여러 클래스가 서로 다른 동작을 수행할 수 있도록 하는 객체지향 개념

Coupling (결합도)

  • 모듈 간의 의존성을 나타내는 지표 (낮을수록 좋음)

Cohesion (응집도)

  • 모듈 내부의 기능이 하나의 목적을 중심으로 잘 응집된 정도 (높을수록 좋음)

API (Application Programming Interface)

  • 소프트웨어가 서로 상호작용할 수 있도록 제공하는 인터페이스

IDE (Integrated Development Environment)

  • 코딩, 디버깅, 빌드, 배포 기능을 포함한 통합 개발 환경 (ex: IntelliJ, VS Code)

Debugging (디버깅)

  • 코드의 오류를 찾아 수정하는 과정

Big-O (빅오 표기법)

  • 알고리즘의 시간 복잡도를 나타내는 표기법

Singleton (싱글톤 패턴)

  • 하나의 객체만 생성되도록 보장하는 디자인 패턴

Stack & Queue (스택 & 큐)

  • 스택: LIFO(Last In, First Out) 방식의 자료구조
  • : FIFO(First In, First Out) 방식의 자료구조

Tree (트리)

  • 계층적인 데이터 구조를 표현하는 자료구조

Database (데이터베이스)

  • 데이터를 체계적으로 저장하고 관리하는 시스템

SQL (Structured Query Language)

  • 데이터베이스를 조작하고 관리하기 위한 언어

ORM (Object-Relational Mapping)

  • 객체와 데이터베이스를 매핑하여 SQL 없이 데이터를 다룰 수 있도록 하는 기술 (ex: JPA, Hibernate)

Transaction (트랜잭션)

  • 데이터베이스에서 하나의 작업 단위로 실행되는 연산

Commit & Rollback

  • Commit: 트랜잭션을 확정하여 데이터베이스에 반영
  • Rollback: 트랜잭션을 취소하여 이전 상태로 되돌림

Design Pattern (디자인 패턴)

  • 소프트웨어 설계에서 자주 사용되는 문제 해결 방법 (ex: Factory, Observer, Singleton)

HTTP & HTTPS

  • HTTP: 웹에서 데이터를 주고받기 위한 프로토콜
  • HTTPS: SSL/TLS 암호화를 적용한 보안 프로토콜

XSS (Cross-Site Scripting)

  • 악성 스크립트를 웹사이트에 삽입하여 사용자 정보를 탈취하는 공격 기법

REST API (Representational State Transfer API)

  • HTTP를 기반으로 자원(Resource)을 주고받는 API 설계 원칙

Secure Coding (보안 코딩)

  • 보안 취약점을 방지하기 위해 안전한 코딩 기법을 적용하는 방법