2025년 9월 15일 월요일 - 3 (78일차)

Jeonghoon·2025년 9월 15일

jeonghoon's Study

목록 보기
81/128

💻 개인 공부 정리 노트


⚙️ 스크립트 언어 vs 컴파일 언어

프로그래밍 언어는 코드를 실행시키는 방식에 따라 크게 두 가지로 나뉩니다.

구분스크립트 언어 (Script Language)컴파일 언어 (Compile Language)
기본 정의스크립트를 통해 소프트웨어를 제어하는 언어. 코드 수정이 잦은 환경에 효율적소스 코드를 기계어로 변환(컴파일) 하여 실행하는 언어
실행 방식한 줄씩 인터프리터 방식으로 실행전체 코드를 미리 컴파일하여 실행파일 생성
대표 예시JavaScript, Python, JSP, jQueryC, C++, Java
오류 확인 시점실행 중 오류 발생 시 확인 가능컴파일 시점에 오류 감지 가능
실행 속도실행 시 매번 번역 → 상대적으로 느림미리 컴파일된 코드 실행 → 빠름
문법 난이도단순하고 간결함규칙이 많고 복잡함
보안성코드가 노출될 가능성 높음기계어 실행 → 유출 어려움
적합한 용도빠른 개발, UI/UX 중심 애플리케이션대규모, 성능 중심 프로그램

🧩 스크립트 언어 특징 정리

1️⃣ 문법이 단순하고 배우기 쉬움
2️⃣ 컴파일러 없이 한 줄씩 해석하므로 번역속도 빠름 (단, 실행 속도는 느릴 수 있음)
3️⃣ 실행하며 오류를 파악해야 함
4️⃣ CPU 사용량이 많아 복잡한 연산에는 비효율적

🧱 컴파일 언어 특징 정리

1️⃣ 문법 규칙이 엄격하며 학습 난이도가 높음
2️⃣ 대형 프로젝트의 경우 컴파일 시간 증가
3️⃣ 한 번 컴파일 후에는 실행속도가 매우 빠름
4️⃣ 기계어로 동작하기 때문에 보안성이 높음


🧭 SDLC (Software Development Life Cycle)

소프트웨어가 탄생부터 종료까지 거치는 전 과정

단계이름설명
1️⃣요구사항 분석(Requirement Analysis)고객의 요구를 파악하고, 목표와 기능 정의
2️⃣설계(Design)요구사항을 바탕으로 시스템 구조, DB, UI/UX 설계
3️⃣구현(Implementation)설계문서를 기반으로 실제 코드 작성
4️⃣테스트(Testing)오류 검증 및 품질 확인, 기능 검증 단계
5️⃣배포(Deployment)실제 서비스 환경에 시스템 반영
6️⃣유지보수(Maintenance)버그 수정 및 기능 향상, 환경 변화 대응

💡 SDLC는 단순 개발이 아닌 "지속 가능한 소프트웨어 개발 체계" 를 만드는 것이 핵심입니다.


🌱 Spring Ecosystem (스프링 생태계)

Java 기반 백엔드 개발을 위한 통합적인 프레임워크 모음

Spring 생태계는 각기 독립된 프로젝트이지만, DI, IoC, AOP라는 핵심 원칙을 공유합니다.

🧩 주요 구성요소

구성요소설명
Spring Framework스프링의 핵심 기반. IoC/DI를 통해 객체를 관리하는 컨테이너 역할
Spring Boot복잡한 설정을 제거하고 빠른 애플리케이션 빌드 지원. 내장 웹서버 포함
Spring Data데이터베이스 접근을 일관되게 처리하는 데이터 계층 기술
Spring Security인증(Authentication) \& 인가(Authorization) 등 보안 기능 제공
Spring CloudMSA (Microservice Architecture) 환경 구축 지원. 각 서비스 연결 관리
Spring Batch대용량 데이터 처리 및 정기적 배치 작업(정산, 통계)에 특화된 모듈

🧠 Spring Ecosystem의 설계 철학

핵심 철학설명
느슨한 결합 (Loose Coupling)필요한 프로젝트만 선택하여 연결 가능
높은 확장성 (High Scalability)독립적인 프로젝트 업데이트로 유연성 확보
공통 설계 원칙 공유DI, IoC, AOP 등 핵심 개념을 전 생태계가 공유

🏗️ 즉, 한 프로젝트를 익히면 다른 스프링 기반 프로젝트도 쉽게 적응 가능!


🔩 Spring Ecosystem 구성 이유 요약

1️⃣ 프로젝트 맞춤형 조립 가능성
→ 필요한 기능만 선택적으로 사용 가능

2️⃣ 유연한 확장 구조
→ 부분 업데이트 및 기능 교체 용이

3️⃣ 공통 철학 기반의 일관성
→ 개발 생산성 향상 및 러닝 커브 감소

0개의 댓글