분류 전체보기

·Server
JPA(Java Persistence API)JPA는 자바 진영에서 ORM(Object-Relational Mapping) 기술 표준으로 사용되는 인터페이스의 모음이다. 인터페이스라는 말은?실제적으로 구현된 것 X구현된 클래스와 매핑을 해주기 위해 사용되는 프레임워크JPA를 구현한 대표적인 오픈소스: Hibernate  JPA는 애플리케이션과 JDBC(Java Database Connectivity) 사이에서 동작한다.  스프링에서 흔히 사용하는 것으로 알고있는 JPA는 JPA를 이용하는 Spring Data JPA 프레임워크이다.JPARepository란 Spring Data JPA에서 제공하는 인터페이스 중 하나로, JPA를 사용하여 데이터베이스를 조작하기 위한 메서드를 제공한다.  ORM(Objec..
·Server
CustomerEntity@Getter@NoArgsConstructor( access = AccessLevel.PROTECTED)@AllArgsConstructor@Builder@Entity@Table(name = "customer")public class CustomerEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "customer_id") private Long customer_id; @Column(name = "customer_username", nullable = false) private String customer_username; @Column(name = "..
·Server
MVC 패턴을 공부하며, DAO와 Repository는 비슷한 개념으로 혼용되어 쓰는 줄 알았다.하지만 차이점을 공부해보니, 비슷하게 보일 뿐 완전 다르다는 것을 알게되었다.차이점을 알아가보자! DAO 설명 보러가기Repository 설명 보러가기 먼저 Repository는 DDD에서 나온 단어라는 것을 알고 가야한다.그럼 DDD란 무엇일까?DDD(Domain-Driven-Design)도메인 주도 설계.즉 도메인 패턴을 중심에 놓고 설계하는 방식이다. DDD에서 말하는 도메인이란 비즈니스 도메인으로, 유사한 업무의 집합을 말한다. 예를 들어 이커머스 서비스일 경우, 결제 / 주문 / 배송 / 고객관리 / 인증 등으로 분리할 수 있다. 이처럼 DDD는 큰 규모의 서비스를 작은 비즈니스 단위로 쪼개어 각 도..
·Server
SpringBoot 프로젝트를 처음 시작하고 HelloController만 만들어 준 폴더 구조이다.  아무런 디렉토리 구조가 잡혀있지 않은 상황이다.개발자가 다양하게 내부 레이아웃을 구성할 수 있다.  보편적으로는 이러한 애플리케이션 아키텍처(MVC)를 기반으로 설계한다. ControllerClient의 요청을 받았을 때, Service를 호출업무 수행이 완료되면, 그 결과를 바탕으로 화면을 구성하도록 View에 전달 ServiceController의 요청을 받아, 해당 요청에 알맞은 정보로 가공 후 DB로 전달DB 정보가 필요할 때는 Repository에 요청Repository를 상속받아 .save() 등의 함수 사용 가능 RepositoryDB관리 (연결, 해제, 자원 관리)Entity에 의해 생성..
·Server
이번에 만들 프로젝트에서 SpringBoot를 MVC 패턴으로 설계하기로 했다!MVC를 기반으로 한 프로젝트 구조를 설계해보자.그 전에 먼저 알아야할 개념들이 있다. MVC패턴 알아보기   DAO(Data Access Object)데이터 베이스에 접근하기 위한 객체DB에 접근하기 위한 로직과 비즈니스 로직을 분리하기 위해서 사용 DTO(Data Transfer Object)계층 간 데이터 교환을 하기 위해 사용하는 객체즉, 데이터를 이동(Transfer)하기 위한 객체DTO는 로직을 가지지 않는 순수한 데이터 객체(getter & setter 만 가진 클래스) 이다.Q : 데이터를 움직일 때 왜 Entity 객체를 그대로 사용하지 않고 굳이 DTO를 사용하는 것인가?A: 관심사의 분리(Separation..
·Server
MVC란?모델-뷰-컨트롤러(model–view–controller, MVC)의 약자로, 소프트웨어 디자인 패턴이다.Model애플리케이션의 정보(데이터)를 나타낸다.모델의 상태에 변화가 있을 때 컨트롤러와 뷰에 이를 통보한다.이와 같은 통보를 통해 뷰는 최신의 결과를 보여줄 수 있고, 컨트롤러는 모델의 변화에 따른 적용 가능한 명령을 추가, 제거 수정할 수 있다.뷰나 컨트롤러가 직접 모델의 상태를 읽어올 수도 있다. Model의 규칙1. 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한다.2. 뷰나 컨트롤러에 대해서 어떤 정보도 알지 말아야 한다.3. 변경이 일어나면, 변경 통지에 대한 처리 방법을 구현해야만 한다.Controller모델에 명령을 보냄으로써 모델의 상태를 변경할 수 있다.데이터와 비..
·Algorithm
11650import sysinput = sys.stdin.readline #pointn = int(input())arr = [[0 for j in range(2)] for i in range(n)]for i in range(n): arr[i] = list(map(int,input().split()))arr.sort(key= lambda x: (x[0], x[1]))for i in arr: print(i[0], i[1]) 하지만 문제에서 따로 lambda를 안쓰고 sort()만 써도 맞았다.기본 설정이 첫번째 값부터 오름차순으로 정렬하는 것 같다. 11651위의 코드에서 이 부분만 변경arr.sort(key= lambda x: (x[1], x[0]))  문자열.split()문자열을 일정한 규칙..
·Algorithm
import sysinput = sys.stdin.readlinen = int(input())ar = [ [0 for j in range(int(n))] for i in range(int(n))]cnt = 1i = 0j = 0ar[0][0] = [1],[1]sum = 1for k in range(n): cnt = cnt + 1 if cnt % 2 == 0: #짝수 j = cnt - 1 i = 0 else: #홀수 i = cnt - 1 j = 0 for x in range(cnt): if cnt % 2 == 0: ar[i][j] = str(i+1) + '/' + str(j+1) sum..
YugyeongChoi
'분류 전체보기' 카테고리의 글 목록 (2 Page)