전체 글 40

[Spring·Vue·MySQL] 개발 기술 개념도 정리

📌 전체 개념도 정리1. 언어 & 문법프로그래밍 언어Java, JavaScript템플릿/뷰 언어JSP, JSTL, EL, Thymleaf스크립트 라이브러리jQuery데이터 포맷JSON, Gson2. 프론트엔드UI 프레임워크 & 라이브러리Bootstrap, MetronicSPA/Mobile 프레임워크Vue.js, Pinia (상태관리)데이터 통신AJAX, Axios, fetch3. 백엔드프레임워크Spring, Spring Boot, Ubiaccess framework패턴MVC, DDD, GOF 디자인 패턴, 싱글톤서블릿DispatcherServletBean 관리Bean, Lombok (코드 간소화)로깅Log4j테스트JUnit4. 데이터베이스 & ORMDBMSMySQL, MariaDB클라이언트 툴Workb..

[Git] Github 사용법 총정

Git 과 Github1) Git- 로컬에서 관리되는 버전 관리 시스템 (시간에 따라 파일의 변경사항을 추적하고 기록)- 로컬 저장소를 사용한다. -> 다른 사람이 내 작업물 알 수 없다. 2) Github- 개인의 로컬 서버 밖에서 Gir 버전 프로젝트를 공유, 기록하는 온라인 데이터베이스- 저장소를 깃허브에서 제공해주는 클라우드 서버를 이용한다. -> 다른 사람과 협업시 소스코드 공유가 가능하다. Github 기본 용어1) CLI, GUI- CLI : 명령어 인터페이스로, 주로 터미널을 통해 컴퓨터와 상호작용하는 방식- GUI : 입출력 등의 기능을 알기 쉬운 아이콘 등의 그래픽으로 나타낸 것 2) Local, Remote- Local : 사용하고 있는 컴퓨터- Remote : 원격 저장소 3) Re..

[dbmodeling-Normalization] 데이터모델링 정규화 실습

데이터 모델링 정규화- 관계형 스키마를 더 좋은 구조로 정제해 나가는 과정이다. 속성 간 관계분석을 기반으로 일정한 조건을 만족하는 형태로 엔티티를 분해하는 과정이다. 제 1 정규화 Atomic Columns- 복수의 속성 값을 갖는 속성을 분리하는 것 (중복과 반복을 없앰)- 컬럼은 원자성을 가지며, 모든 속성은 값이 하나이다.- 하나의 속성이 하나의 값을 가질 수 있도록 분해 (튜플 증가) -> 여러개의 속성 값을 갖는 속성을 다른 관계로 분해 (새로운 엔티티) 제 2 정규화 No partial dependencies (부분 종속성)- 부분 함수적 종속관계를 제거하는 것- 모든 속성은 반드시 주식별자 속성에 종속되어야 한다,- 복합키가 구성되었을 때 부분적으로 종속된 속성을 분해 (새로운 엔티티 생성..

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

1. 데이터 포맷 & 변환JSON (JavaScript Object Notation)키-값 기반 경량 데이터 교환 포맷서버 ↔ 클라이언트 간 통신에 사실상 표준예: { "id": 1, "name": "길동" }GsonGoogle의 Java용 JSON 라이브러리Java 객체 ↔ JSON 간 직렬화/역직렬화2. DB 연동 계층JDBC (Java Database Connectivity)Java에서 DB와 연결하는 표준 APISQL 직접 작성, 연결/자원 해제 수동 관리 → 코드 장황MyBatisSQL 매퍼 프레임워크JDBC 기반이지만 XML/Annotation으로 SQL을 분리 관리DAO + Mapper XML 구조 → 가독성 및 유지보수성 ↑Hibernate (JPA 구현체)ORM(Object Relatio..

Spring - Bean 주입 / XML vs JavaConfig

Spring 에서 Bean(객체)을 컨테이너에 등록하고 의존성을 주입하는 방법은 크게 두 가지가 있음. - XML 설정, JavaConfig 방식 XML 기반- 설정이 코드와 분리되며, 운영 중 XML만 수정이 가능하다.- 설정파일이 길어지고 관리가 어렵다.xml version="1.0" encoding="UTF-8"?>web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://jakarta.ee/xml/ns/jakartaee" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd" id..

Spring Boot - REST API

뭐임?- RESTful API 는 REST 아키텍쳐 스타일을 따르는 애플리케이션 프로그래밍 인터페이스(API) 이다. REST는 웹 기본 원칙(HTTP 프로토콜, URI, 메서드 등)을 활용하여 시스템 간 데이터를 주고받는 방식을 정의한 설계 방식이다. RESTful API는 주로 클라이언트와 서버 간 통신을 위해 사용된다. 구성 요소?1. 자원 Resource : REST에서는 모든 데이터를 자원으로 취급, URI로 식별함2. HTTP 메서드 : 자원에 대해 수행할 작업 정의 / GET(자원 조회), POST(자원 생성), PUT(자원 수정), DELETE(자원 삭제)3. 상태 코드 Status Code : 요청의 결과를 나타냄 / 200 OK, 201 Created, 400 Bad Request, 4..

Filter vs Interceptor vs AOP

Interceptor vs AOP vs Spring Filter 모두 공통 기능을 끼워넣는 기술이라 헷갈려서 쓰는 글임 ~-~동작 시점, 범위, 사용 목적이 다르다고 한다. Filter (비유 : 건물 입구 보안 게이트)- 웹 애플리케이션 전역 / 서블릿, 정적자원까지 포함해서 가로 챔- DispatcherServlet 진입 전 후 / 서블릿 컨테이너 레벨에서 동작 / 즉, 스프링 MVC에 들어오기 전에 요청 응답 가로챔- 스프링 밖의 자원 JSP, 이미지, CSS, JS 등 모든 요청, 응답- 주로 인코딩 처리(UTF-8), 보안(권한 체크), CORS 설정, XSS 필터링, 공통헤더 추가 등에 사용 Interceptor (사무실 문 앞 보안 체크)- 스프링 MVC 컨트롤러 전용 가로채기- Dispat..

Spring AOP - LogAdivce 구현 예제

AOP는 Aspect Oriented Programming의 약자로 관점지향 프로그래밍이라고 불린다. 관점지향이란 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하겠다는 것이다. 여기서 모듈화란 어떤 공통된 로직이나 기능을 하나의 단위로 묶는 것을 말한다. 예) 핵심적 관점은 적용하고자 하는 핵심 비즈니스 로직, 부가적 관점은 핵심로직을 실행하기 위해 행해지는 데이터베이스 연결, 로깅, 파일 입출력 등 각 관점을 기준으로 로직을 모듈화 한다 = 코드를 부분적으로 나누어 모듈화 한다흩어진 관심사 (Crosscutting Concerns) : 다른 부분에서 계속 반복하여 쓰는 코드흩어진 관심사를 Aspect로 모듈화하고 핵심적인 비즈니스 로직에서 분리하여..

MyBatis - Logging

왜씀?클라이언트의 요청이 있을 때 서버에서 어떠한 요청을 처리가 가능한지 목록을 볼 수 있음. 실행 순서 1. 구글 검색 --> spring mvc log maven dependency 2. pom.xml 에 추가dependency>groupId>org.slf4jgroupId>artifactId>slf4j-apiartifactId>version>1.7.36version>dependency> dependency>groupId>org.slf4jgroupId>artifactId>slf4j-log4j12artifactId>version>1.7.36version>dependency> dependency>groupId>log4jgroupId>artifactId>log4jartifactId>version>1.2.1..

Spring MVC

스프링 프레임워크 모듈 중 웹 계층을 담당하는 모듈 -> 서블릿 API를 기반으로 클라이언트의 요청을 처리하는 모듈 -> 이를 스프링 웹 MVC 라고 한다. 서블릿- 클라이언트의 요청을 처리하도록 특정 규약에 맞춰 Java 코드로 작성하는 클래스 파일- Apache Tomcat은 이러한 서블릿들이 웹애플리케이션으로 실행할 수 있도록 해주는 서블릿 컨테이너 중 하나임.- spring MVC 내부에서는 서블릿을 기반으로 웹애플리케이션을 동작하며, 스프링 부트는 기본적으로 아파치 톰캣이 내장되어 있. MVC (Model, View, Controller)- 애플리케이션을 개발할 때 사용하는 디자인 패턴- 개발 영역을 MVC로 구분하여 각 역할에 맞게 코드를 작성 Model- 클라이언트의 요청을 전달받으면 요청사..