공간정보아카데미

개발 필수 개념 총정리 (JSON부터 Spring Boot, Node.js 까지)

minjava 2025. 9. 9. 00:18

1. 데이터 포맷 & 변환

  • JSON (JavaScript Object Notation)
    • 키-값 기반 경량 데이터 교환 포맷
    • 서버 ↔ 클라이언트 간 통신에 사실상 표준
    • 예: { "id": 1, "name": "길동" }
  • Gson
    • Google의 Java용 JSON 라이브러리
    • Java 객체 ↔ JSON 간 직렬화/역직렬화

2. DB 연동 계층

  • JDBC (Java Database Connectivity)
    • Java에서 DB와 연결하는 표준 API
    • SQL 직접 작성, 연결/자원 해제 수동 관리 → 코드 장황
  • MyBatis
    • SQL 매퍼 프레임워크
    • JDBC 기반이지만 XML/Annotation으로 SQL을 분리 관리
    • DAO + Mapper XML 구조 → 가독성 및 유지보수성 ↑
  • Hibernate (JPA 구현체)
    • ORM(Object Relational Mapping) 프레임워크
    • SQL 작성 없이 객체와 테이블 매핑
    • DB 독립성, 개발 속도 ↑
  • DataSource (JNDI 포함)
    • DB 연결 정보를 관리하는 객체
    • 커넥션 풀(Connection Pool)로 성능 최적화

3. 빌드 & 의존성 관리

  • Maven
    • XML(pom.xml) 기반 빌드 & 라이브러리 관리 도구
    • 표준화된 구조
  • Gradle
    • 스크립트(Groovy/Kotlin DSL) 기반 빌드 도구
    • 유연하고 성능이 좋음

4. 웹 통신 & 프론트엔드

  • AJAX (Asynchronous JavaScript and XML)
    • 전체 새로고침 없이 서버와 비동기 통신
    • 현재는 JSON 기반으로 주로 사용
  • Axios
    • JavaScript에서 HTTP 요청을 쉽게 만드는 라이브러리
    • fetch보다 간결하고 브라우저 호환성이 좋음
  • Vue.js
    • 프론트엔드 프레임워크 (SPA 개발에 최적화)
    • 반응형 데이터 바인딩 제공
  • Pinia
    • Vue 3 공식 상태 관리 라이브러리
    • 전역에서 데이터 공유 가능
  • Vue Router
    • Vue 애플리케이션에서 라우팅(SPA → MPA처럼 페이지 전환) 담당

5. 서버 & 백엔드

  • Servlet
    • Java EE의 웹 컴포넌트 (HttpServlet)
    • 요청(Request)/응답(Response)을 직접 처리
  • JSP (Java Server Pages)
    • HTML에 Java 코드를 삽입하는 방식
    • 과거엔 많이 썼으나 요즘은 Spring MVC + 템플릿/프론트엔드로 대체
  • Spring
    • 엔터프라이즈 Java 프레임워크
    • DI, AOP, MVC, Transaction 등 제공
  • Spring Boot
    • Spring의 설정을 간소화
    • 내장 Tomcat, 자동 설정 → 빠른 개발에 최적화
  • Node.js
    • Chrome V8 엔진 기반 JavaScript 런타임
    • 서버 사이드에서도 JavaScript 사용 가능
    • 비동기 I/O, 이벤트 기반 → 높은 성능과 확장성
    • Express.js 같은 웹 프레임워크와 자주 사용
  • Express.js
    • Node.js 기반 경량 웹 프레임워크
    • 라우팅, 미들웨어 중심 구조
  • Tomcat
    • Java 기반 서블릿 컨테이너(웹 서버)
    • JSP/Servlet 실행 환경 제공

6. 아키텍처 & 패턴

  • MVC (Model-View-Controller)
    • Model(데이터), View(UI), Controller(흐름제어) 분리
    • 유지보수성과 협업 효율 ↑
  • DAO (Data Access Object)
    • DB 접근 전담 클래스
    • MyBatis/Hibernate와 함께 자주 사용
  • VO/DTO (Value Object / Data Transfer Object)
    • 계층 간 데이터 전달 객체
  • AOP (Aspect Oriented Programming)
    • 횡단 관심사(로그, 트랜잭션, 보안 등)를 모듈화
    • 핵심 로직과 분리해 코드 간결화

7. 로깅 & 설정

  • Log4j
    • Java용 로깅 라이브러리
    • 로그 레벨/포맷/출력 대상(Console, File 등) 설정 가능
  • ApplicationContext
    • Spring 컨테이너 (Bean 생성/관리 담당)
    • XML, JavaConfig, Annotation 방식 지원