전체 글 112

JpaRepository save()

save() 역할은 무엇일까? 스프링 단에서 알아서 데이터를 DB안에 넣어주는 기능 ⇒ JpaRepository를 확장하는 인터페이스만 만들어서 Repository로 사용하면 됨 JPA 심층 분석 ORM 프레임워크인 JPA와 Spring 프레임워크를 연계하여 사용 ⇒ JPARepository 인터페이스를 자주 사용 실제 동작하는 구현체 = SimpleJpaRepository @Repository 어노테이션이 붙어있기 때문에, Spring이 실행될 때 AnnotationApplicationContext에 의해 스프링 컨테이너에 Bean으로 등록이 된다. Exmaple **SimpleJpaRepository.save(S entity)** @Transactional @Override public S save(..

DAO DTO Repository

DAO (Data Access Object) DB의 data에 접근하기 위한 객체 DB에 접근하기 위한 로직을 분리하기 위해 사용 직접 DB에 접근하여 data를 삽입, 삭제, 조회 등 조작할 수 있는 기능 수행 MVC 패턴의 Model에서 이와 같은 일을 수행 Repository DB에 접근하기 위한 객체 DAO 와 Repository의 상관관계 ?차이점 : 제공/관리(매핑)하는 주체의 차이에 따라 달라짐⇒ DAO : SQL에 대한 매핑 (매핑 레벨 : SQL) ← Persistence Layer(영속성) 에 대한 추상화 ⇒ Repository : 자바 객체를 테이블에 매핑 (매핑 레벨 : 객체) ← Domain Layer에 대한 추상화 공통점 : DAL (Data Access Layer, DB 관련 ..

Servlet(서블릿)

**본 post는 [인프런 - 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술]를 참고해 작성했습니다. 프로젝트 생성 💡 트러블 슈팅 1 JDK 17.0.5 isn't compatible with Gradle 7.6.1. Please fix JAVA_HOME environment variable. Invalid Gradle JDK configuration found. error SETTINGS - BUILD,EXECUTION,DEPLOYMENT - GRADLE 에서 Gradle JVM이 project와 같아야함 프로젝트 생성 성공 (ServletApplication run) LOMBOK Settings -plugin- lombok 검색 실행 (재시작) Settings - Annotation Proces..

JPA

ORM(Object-Relational Mapping) 객체와 관계형 DB를 매핑 ORM 프레임 워크를 사용시, 객체를 마치 자바 컬렉션에 저장하듯 저장 O ORM 프레임워크가 적절한 SQL를 생성해서 DB에 객체를 저장 HIBERNATE Java 진영의 다양한 ORM 프레임워크 중 가장 많이 사용되는 프레임워크 Hibernate기반으로 만들어진 ORM 기술 표준 = JPA JPA (Java Persistence API) 자바 진영의 ORM 기술 표준 ORM for JAVA JPA가 제공하는 API를 사용하면, 객체를 DB에 저장하고 관리할 때, 개발자가 직접 SQL를 작성 X JPA가 개발자 대신, SQL을 생성해서 DB에 전달 & 객체를 자동으로 Mapping해줌 JPA는 내부적으로 JDBC API를..

DFS

* 해당 포스트는 코드트리를 활용한 포스팅입니다. DFS (Depth First Search, 깊이 우선 탐색) : 최대한 깊게 탐색한 후 더 이상 도달할 수 없는 상황이라면, 다시 이전으로 돌아간다. 특징 1. 특정 지점을 방문하고, 이후에 주변 노드를 탐색한다. 2. DFS는 재귀를 활용해 구현하는 경우가 많다. ex) 방문할 수 잇는 지점이 있다면, 그 지점을 방문하는 함수를 재귀적으로 호출 없다면 함수를 종료 3. 이미 방문했던 지점을 또 방문하면 효율이 떨어진다. 이전에 방문했던 지점은 다시 방문 x => '처리'를 해야함 => 처리 : visited란 배열을 만들어서, 번호를 갖고 있는 지점을 방문한 적이 있는지 확인하며 진행하기 4. 그래프의 정점이 100개라면, DFS를 수행하는 동안 재귀..

알고리즘 2023.05.02

[AWS] AWS 모범사례

* GS Neotek AWS 강의를 바탕으로 작성한 포스트입니다. 클라우드 컴퓨팅 컴퓨팅 및 IT 자원을 언제 어디서나 필요할 때마다 요청, 최소한의 관리 노력으로 신속하게 이용할 수 있는 기술 클라우드 서비스 종류 SaaS (Software as a Service) PaaS (Platform as a Service) IaaS (Infrastructure as a Service) AWS 모범사례 #1. AWS 모범 사례 : 장애(Failure)를 감안한 디자인 클라우드 환경에서는 설계시, 장애를 겪을 수 있다는 점을 감안해야한다. 그러므로 설계를 굉장히 보수적으로 진행하고 이를 복구할 수 있는 시스템으로 디자인한다. Example. 만약 2개의 애플리케이션 서버가 하나의 DB서버에 연결돼있을 때 DB에 ..

BACKEND 2023.03.16

Prefix Sum / 정수 n개의 합

*본 문제는 저작권자 © 브랜치앤바운드 의 저작권법의 보호를 받습니다. [문제] 1이상 100이하의 숫자로만 이루어진 n * n 크기의 2차원 격자 상태가 주어졌을 때, k * k 크기의 정사각형이 격자를 벗어나지 않게 잡았을 때 정사각형 내 숫자들의 합이 최대가 되도록 하는 프로그램을 작성해보세요. [예제] 3 1 1 2 3 9 8 8 6 8 8 [풀이] 누적합을 배열로 먼저 구성한 다음, 문제를 진행한다. 이때, 누적합은 *누적합 배열 공식 을 참고한다.​​ import sys n, k = map(int,input().split()) arr = [] s = [] arr.append([0]*(n+1)) ans = -sys.maxsize for _ in range(n): arr.append([0] + l..

알고리즘 2023.02.17

[J2KB] 회원관리

목표 : 단순한 사이트 제작해보기 ! 1. 비즈니스 요구사항 정리 데이터 : 회원ID, 이름 기능 : 회원 등록, 조회 아직 데이터 저장소 선정 X 일반적인 웹 애플리케이션 계층 구조 Controller : 웹 MVC의 컨트롤러 역할 Service : 핵심 비즈니스 로직 구현 Repository : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 Domain : 비즈니스 도메인 객체 (ex. 회원, 주문, 쿠폰 등등 주로 데이터 베이스에 저장하고 관리) 클래스 의존 관계 우선, 인터페이스로 구현 클래스를 변경할 수 있도록 설계 (대부분의 데이터 저장소는 RDB, NoSQL 등 다양한 저장소 사용 가능) 2. 회원 도메인과 레포지토리 만들기 회원객체 (domain > Member.java) pac..

[J2KB] API

** 인프런 [스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술] 강의를 기반으로 작성합니다. API 만약 안드로이드, 아이폰 클라이언트와 개발 > json이란 데이터구조 포맷으로 클라이언트에게 데이터를 전달함 view, js , react 등등 -> 화면은 클라이언트가 알아서 내리기서버끼리 통신할때는 데이터흐름만이 중요해서 그때 사용할 수 도 있음 @ResponseBody 문자 반환 viewResolver를 사용하지 않는다.(MVC 패턴과의 차이점) 대신, http에서 body부에 데이터를 직접 넣어준다는 의미 @Controller public class HelloController { @GetMapping("hello-string") @ResponseBody public Str..