본문 바로가기
728x90
반응형

개발자 전향 프로젝트93

[Spring] 객체지향 설계 5 원칙 SOLID란? feat.클린코드 객체지향 설계의 핵심은 자고로 응집도는 높고 결합도는 낮은 프로그램을 설계하는 것이다. 그렇다면 응집도는 무엇이고 결합도는 또 무엇일까? [ 응집도(Cohesion) ] 한마디로 내부 요소들의 연관성이다. 예를 들어 하나의 클래스에서 함수(method)와 변수가 통일된 목적을 가지고 연관되어 있다면 응집도가 높은 것이고 이 함수는 이 변수에 저 함수는 저 변수에 뒤죽박죽이라면 그 클래스는 다양한 목적이 있는 클래스가 되고 목적을 기준으로 더 쪼개질 수 있으므로 단일 목적으로서의 응집도가 낮다고 할 수 있다. 더 쉬운 예시: 메뉴가 하나뿐인 오래된 음식점을 생각해보자. 그 음식점의 모든 내부 요소들은 그 하나의 메뉴를 만드는 것이라는 목적으로 똘똘 뭉쳐서 연관성이 매우 높을 것이다. 반면 메뉴가 여러개인 .. 2022. 9. 21.
[jQuery] Datatable 로 쉽게 데이터 조회하는 테이블 만들기 1. CDN을 통해 외부 라이브러리를 쉽게 import 하기 2. 테이블을 만들면 된다 Email Name 3. 이제 늘 하던대로 VO나 Entity 하나 두고 html단에서 ajax 통신으로 컨트롤러->서비스->리포지토리로 가서 데이터를 긁어오면 된다. 아래는 샘플 서버사이드 스크립트 테이블 끗 2022. 9. 15.
관계형 데이터베이스 (1:1, 1:N, N:M ) 1:1 관계(일대일 관계) 1:1 관계란 어느 엔티티 쪽에서 상대 엔티티와 반드시 단 하나의 관계를 가지는 것을 말한다. 예를 들어, 우리나라에서 결혼 제도는 일부일처제로, 한 남자는 한 여자와만 결혼을 할 수 있다. 남편 또는 부인을 2명 이상 둘 수 없는데, 이러한 관계가 1:1 관계다. 1:N 관계(일대다 관계) 1:N 관계는 한 쪽 엔티티가 관계를 맺은 엔티티 쪽의 여러 객체를 가질 수 있는 것을 의미한다. 예를 들어, 부모와 자식 관계를 생각해보면, 부모는 자식을 여러명 가질 수 있다. 하지만 자식 입장에서는 일반적으로 부모를 하나만 가질 수 있다. 이러한 관계를 1:N 관계라고 하며, 계층적인 구조로 이해할 수도 있다. 여러 명의 자식(N)의 입장에서 한 쌍의 부모(1)중 어떤 부모에 속해 있.. 2022. 9. 6.
[Oracle] 계층형 쿼리 - START WITH ~ CONNECT BY 계층형 쿼리란? 부모, 자식 간의 수직관계를 트리 구조 형태로 보여주는 쿼리 회사 조직도를 예시로 들어보자. '회사'는 최상위계층이고, 회사를 중심으로 개발부, 경영지원부, 영업부 세 부서로 나뉜다. 계속해서 부서를 중심으로 하위 계층이 생성되어 있다고 가정하자. 이를 테이블로 나타내면 아래와 같다. 부서번호는 고유식별자로 Primary Key가 된다. START WITH SELECT * FROM EMP_TB START WITH 상위부서번호 IS NULL; 회사는 그보다 상위부서가 없기 때문에 상위부서를 NULL로 주며, 부서번호가 NULL 인 것을 찾으면 최상위 부서를 찾게 되는 원리이다 CONNECT BY PRIOR 하위트리 = 상위트리 폭포를 생각하면 쉽다. 위에서 아래로 내려가는 그런 기본 트리구.. 2022. 9. 6.
MyBatis vs JPA 기본 배경: MVC패턴을 안다면 MODEL이 DB에 접속하는 것 또한 알 것이다. 그렇다면 DB에 접속하기 위해서는 뭐가 필요할까? 바로 JDBC이다. JAVA로 DB에 CONNECT 하겠다는 것이다. 그렇다면 이 JDBC를 사용하면 되지 왜 MyBatis 나 JPA같은걸 쓰는걸까? 이유는 간단하다. JDBC가 귀찮고 복잡하기 때문이다. 그래서 개발자들끼리 이 귀찮고 복잡하고 어려운 JDBC를 조금 더 쉽게 사용할 수 있는 방법이 없을까? 매번 고생하지 말고 JDBC 형식을 미리 만들어놓고 새 프로젝트를 할 때는 그 형식에 값만 넣으면 어떨까? 해서 나온 것이 MyBatis다. MyBatis 를 통해 초반에 좀 번거럽지만 설정파일과 매퍼를 만들어 놓고 경로 설정을 해두면 그 매퍼에 형식에 맞춰서 쿼리문만.. 2022. 8. 26.
[DBMS] MySQL 자주 쓰이는 SELECT(조회) 관련 명령어 6개 1. LIMIT 조회하고 싶은 데이터의 양을 제한하는 명령어 SELECT 필드 이름 FROM 테이블 이름 WHERE 조건 (선택) LIMIT 숫자; *LIMIT 뒤에 나오는 숫자만큼의 TUPLE이 조회된다. 예: 위 테이블에서 특정 조건 없이 3개만 보고 싶다면 SELECT * FROM Customer LIMIT 3; 을 하면 되고 SALARY가 2000을 초과하는 조건을 추가해서 LIMIT을 2로 건다면 위와 같은 결과가 나온다. 응용: 만약 조건이 2000을 초과한다고 지정된 것이 아니라 2000을 포함하거나 그 이상이라고 한다면 LIMIT이 2개라 하더라도 조건에 부합하는 데이터가 2개가 이상인데 이럴 땐 어떻게 될까? 그러면 조건에 부합하는 데이터를 하나씩 채울텐데 조건인 2000부터 시작하여 조.. 2022. 8. 25.
[DBMS] MySQL 의 기초 (2) JOIN 사용하는 DBMS : MySQL 사용하는 툴: Workbench 8.0 CE 사용하는 스키마: World (샘플 스키마) 사용하는 테이블: #1 city, #2 countrylanguage (샘플 테이블) + 예제 테이블 #1 테이블 #2 테이블 #1 과 #2 테이블은 CountryCode라는 칼럼을 둘다 가지고 있다. 이러한 필드 또는 칼럼을 이용하여 두개의 테이블을 이어보려고 한다. 합류한다라는 뜻의 JOIN을 사용할 것이다. JOIN을 사용하는 목적 : 예를 들어 당신이 경찰이고 과속을 한 차량의 cctv 영상을 가지고 있다고 치자. 그러면 해당 cctv 영상을 토대로 해당 차량의 번호판을 판별해서 차량 소유주가 누구이고 그 사람이 살고 있는 주소로 벌금을 날리면 될 것이다. 그런데 차량과 해당 번.. 2022. 8. 22.
728x90
반응형