Programming 7

JPA(Java Persistence API)란?

JPA(Java Persistence API)- 자바 ORM 기술에 대한 API 표준 명세- 애플리케이션과 JDBC 사이에서 동작 ORM(Object-Relational Mapping)- 객체와 관계형 데이터베이스를 매핑 - 단순히 SQL을 개발자 대신 생성해서 데이터베이스에 전달해주는 것뿐만 아니라 다양한 패러다임의 불일치 문제들도 해결 - hibernate: 오픈소스 ORM 프레임워크 가장 많이 사용 JPA를 사용해야 하는 이유생산성자바 컬렉션에 객체를 저장하듯이 JPA에게 저장할 객체를 전달하면 됨INSERT SQL을 작성하고 JDBC API를 사용하는 반복적인 일을 JPA가 대신 처리CREATE TABLE 같은 DDL문을 자동으로 생성데이터베이스 설계 중심 패러다임 -> 객체 설계 중심으로 역전유..

Programming/JPA 2025.04.30

MVC 패턴(Model-View-Controller Pattern)

소프트웨어 공학에서 사용되는 아키텍처 패턴 중 하나애플리케이션을 세 가지 역할로 분리하여 개발하는 방법론을 의미Model(모델)- 데이터와 비즈니스 로직을 처리-사용자가 편집하길 원하는 모든 데이터를 의미 View(뷰)- 사용자에게 보여지는 UI 부분- 데이터를 시각적으로 표현하는 역할Controller(컨트롤러)- 사용자의 입력을 처리하고, 모델과 뷰를 연결하는 역할 MVC1JSP로 구현한 기존 웹 어플리케이션은 모델 1 구조로 웹 브라우저의 요청을 JSP 페이지가 받아서 처리 하는 구조이다.JSP 페이지에 비지니스 로직을 처리 하기 위한 코드와 웹 브라우저에 결과를 보여주기 위한 출력 관리 코드가 뒤섞여 있는 구조JSP 페이지 안에서 모든 정보를 표현(view)하고 저장(model)하고 처리(cont..

Programming 2025.04.16

디자인 패턴(Design Pattern)

소프트웨어 생명주기 모델 프로세스: 요구사항 분석 → 설계 → 구현 → 테스트→ 유지보수 반복이중 설계를 올바르고 효과적으로 하기 위해 디자인 패턴을 적용하는 것이 매우 좋음소프트웨어 설계 방법반복되는 패턴처럼 자주 나타나는 클래스 간의 관계를 맺는 방법올바른 관계를 맺어야 하는 이유클래스는 최소한의 단위 기능을 가짐큰 기능은 이러한 단위 기능을 갖는 클래스들 간의 관계를 통해 개발됨꼭 필요한 것들 만으로 구성된 최적화된 소프트웨어 개발이 용이문제 발생 시 최소한의 코드 수정으로 유지보수가 용이기존 기능에 영향을 주지 않고 새로운 기능 추가가 용이GoF의 디자인 패턴: 클래스 간의 관계를 효과적으로 설계할 수 있는 하나의 사례로 받아들이고 이해하기가장 유용하며 대표적인 디자인 패턴4명의 선배 개발자 (G..

Programming 2025.04.15

OOP(Object-Oriented Programming)

객체지향 프로그래밍(OOP)은 프로그래밍 패러다임 중 하나로,데이터를 ‘객체’라는 단위로 묶어서 처리하는 방식객체는 상태(속성)와 동작(메서드)를 가지며, 현실 세계의 사물이나 개념을 모델링할 때 사용된다. 객체 지향 구성요소클래스(Class): 특정 객체 내에 있는 변수와 메서드를 정의하는 일종의 틀객체(Object): 물리적, 추상적으로 자신과 다른 것을 식별 가능한 대상메서드(Method): 클래스로부터 생성된 객체를 사용하는 방법메시지(Message): 객체 간 상호 작용을 하기 위한 수단, 객체에게 어떤 행위를 하도록 지시하는 방법인스턴스(Instance): 객체 지향 기법에서 클래스를 통해 만든 실제의 실형 객체, 실제 메모리상에 할당속성(Property): 한 클래스 내에 속한 객체들이 가지..

Programming 2025.04.14

Springboot [controller/service/entity/dto/repository] 역할

controller클라이언트로부터 HTTP 요청을 받고, 서비스 레이어에서 요청에 대한 적절한 메소드를 호출한 결과를 HTTP 응답으로 반환하는 역할사용자 요청이 진입하는 곳사용자 요청을 처리하는 곳처리 후 서비스로 넘어간다servicerepository와 controller 사이 미들웨어controller에서 받은 데이터를 가공해서 DB를 보내거나,DB에서 가져온 데이터를 가공해서 사용자에게 보내준다.사용자 요구사항을 처리하는 곳 (비즈니스 로직)entityDB에 접근하는 객체dto (Data Transfer Object)DTO는 클라이언트와 서버 간 데이터를 전송하기 위한 객체데이터 보호, 변환, 검증을 담당하여 유지보수성을 높일 수 있다.Entity를 직접 노출하면 보안 문제가 발생할 수 있기 때문..

트리거(Trigger)

데이터베이스 시스템에서 삽입, 갱신, 삭제 등의 이벤트가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL데이터에 변경이 생겼을 때 자동적으로 발생되는 프로시저 INSERT, UPDATE, DELETE 등을 한 번에 감지하도록 설정 가능 (MySQL 불가)row 단위가 아니라 statement 단위로 tirgger가 실행될 수 있도록 할 수 있다MySQL은 FOR EACH STATEMENT 사용 불가능trigger를 발생시킬 디테일한 조건을 지정할 수 있다 (MySQL 불가) 주의사항소스코드로는 발견할 수 없는 로직이기 때문에 어떤 동작이 일어나는지 파악하기 어렵고 문제가 생겼을 때 대응하기 어렵다가시적이지 않아 개발, 관리, 문제 파악이 어렵다과도한 트리거 사용은 DB에 부담을 주고 응답을 느..

Programming/RDBMS 2025.04.06

오버로딩과 오버라이딩

오버로딩: 과적 → 쌓아 올리는 것함수명이 같아도 매개변수 갯수, 리턴 타입, 순서를 다르게 해서 같은 함수명으로 여러 개의 함수를 정의할 수 있는 것프로그램의 유연성을 높이고 결과적으로 코드를 깔끔하게 하는 효과가 있으며 같은 클래스 내에서 사용이 가능하다오버라이딩: 부모가 야타 → 재정의/덮어쓰기부모(상위) 클래스의 메서드를 자식(하위) 클래스가 재정의 하는 것extends 키워드를 써서 부모클래스를 상속 받았지만 부모클래스의 메서드를 사용하지 않고 자식 클래스에서 재정의 된 매서드를 사용 → 재정의 된 메서드를 먼저 부른다상속 관계 클래스에서 사용되며 static, final로 선언한 메서드는 오버라이딩 불가능

Programming/JAVA 2025.04.05