[CS] 개발자 명명법 & IT 용어 총정리
명명법 (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 (보안 코딩)
- 보안 취약점을 방지하기 위해 안전한 코딩 기법을 적용하는 방법