전체 글 150

[Spring] RestAPI 란?

아래의 이미지는 내가 댓글 기능을 구현할때, 사용했던 RestAPI 적용방식이다. 사실 RestAPI를 어렵게 생각할필요없고, 그냥 단순히 다른사람들이 한번에 URI만 보고 어떤기능을 할것인지 유추할수 있게 요약한 URI을 만드는거라고 생각하면된다 ( 거기서 어떤요청을 할건지에 따라 각각 다른 기능을 함 ) POST GET PATCH PUT 등 /replies/all/{bno} - get요청 게시물 /replies/{bno} - post요청 등록 /replies/{rno} - patch요청 수정 /replies/{rno} - delete요청 삭제 공부하면서 궁금했던점 ? 자연스레 댓글 부분을 공부하면서 ajax 란? @RequestMapping produces 속성과 consumes 속성 , Rest A..

[Spring] Spring 기술면접

프레임워크를 사용하는 이유는 무엇인가? 왜 스프링 프레임워크가 개발의 대세가 된 것인가? Spring의 특징은 무엇인가? DI와 AOP에 대해 설명하시오 POJO는 무엇인가? maven에 대해 설명하시오 mybatis의 역할은 무엇인가? Spring MVC 구성요소에 대해 설명하시오 Spring 기본 환경 설정 파일 및 기능 설명하시오 프레임워크를 사용하는 이유는 무엇인가? 개발자는 각각의 실력이나 코딩 방법 등 차이가 큰 편이다. 그렇다 보니 개발자 구성에 따라 프로젝트의 결과 차이가 많이 생겨서 이러한 것을 극복하기 위해서 프레임워크를 사용하는 것이다. 구조가 있고, 그 구조 안에 개발자가 코드를 추가하는 형태로 개발을 하는 방식이 프레임워크를 사용한 개발로 일정한 품질이 보장되는 결과물을 얻을 수 ..

[Database] Database 면접 질문

Q. 무결성에 대해 얘기해보세요. A. 무결성이란 데이터의 정확성, 일관성, 유효성을 유지하는 것을 말한다. 데이터의 무결성을 유지하기 위해 DBMS에서는 크게 4가지 종류로 구분한다. 개체 무결성 : 기본키로 선택된 필드는 빈 값을 허용하지 않는다. 참조 무결성 : 서로 참조 관계에잇는 두 테이블의 데이터는 항상 일관된 값을 유지한다. 도메인 무결성 : 테이블에 존재하는 필드의 무결성을 보장하기 위한 것으로 올바른 데이터가 입력됬는지를 체크하는 것이다. 고유 무결성 : 특정 속성에 대해 고유한 값을 가지도록 조건이 주어진 경우 그 속성값은 모두 고유한 값을 가진다. 같으면 안된는 것 NULL 무결성 : 특정 속성값에 NULL이 올 수 없다는 조건이 주어진 경우 그 속성값은 NULL이 될 수 없다는 제약..

[Oracle] 테이블간 관계 맺기 - 조인

조인이란? - 테이블 간 관계를 맺는것 (선행조건이 필요하다. 두테이블간의 관계를 맺는데 사용할 컬럼, 즉 두 테이블간 연결고리 역할을 할 컬럼이 있어야함) 내부 조인 WHERE 절에서 동등연산자(=)를 사용해 연결고리 컬럼, 즉 조인 컬럼을 비교하는 조인이다. (아래와 같은 테이블이 정의 되어 있다는 가정) 1 2 3 4 5 SELECT a.emp_id, a.emp_name, a.gender, a.age, a.dept_id, b.dept_id, b.dept_name, b.use_yn FROM emp_master a, dept_master b WHERE a.dept_id = b.dept_id ORDER BY a.emp_id; Colored by Color Scripter cs 사원정보 테이블은 a, 부서..

데이터베이스 2021.02.13

[Spring] 33 커스텀 UserDetailsServices 활용

JDBC를 이용하는 방식으로도 DB를 처리해서 사용할수 있지만, 여러 정보들중 제한적인 내용만 이용 한다는 단점이 존재 이러한 문제를 해결하기위해 UserDetailsServices 인터페이스를 구현하는 방식을 이용하는것이 좋다. ( 원하는 객체를 인증과 권한 체크에 활용 할수 있기에 많이 사용된다) UserDetailsServices 인터페이스는 단 하나의 메서드만 존재한다. 가장 일반적으로 많이 사용되는 방법은 하위 클래스 중에서 org.springframework.security.core.userdetails.User 클래스 상속 하는형태이다. 커스텀 UserDetailsService를 이용하는 방식을 이용하기 위해선, MYbatis를 이용하는 MemberMapper와 서비스를 작성하고, 이를 시큐..

[Spring] 32 JDBC를 이용하는 간편 인증/권한처리

인증과 권한에 대한 처리는 크게 보면 Authentication Manager를 통해 이루어지는데, 1) 이때 인증이나 권한 정보를 제공하는 존재(Provider)가 필요하고, 2) 다시 이를 위해 UserDetailsService 라는 인터페이스를 구현한 존재를 활용하게 된다. UserDetailsService는 이미, 시큐리티 API 내에 이미 많은 클래스가 제공되고 있다.. 찾아보자,,,,, 이번에는 기존 DB가 존재하는 상황에서 Mybatis나 기타 프레임워크없이 사용하는 방법을 공부한다 JDBC를 이용하기 위한 테이블 설정 -JDBC를 이용하는 경우 사용하는 클래스는 JdbcUserDetailsManager 클래스 인데, github 등에 공개된 코드를 보면 SQL문이 선언되있다 github.c..

[Oracle] 집합쿼리 ( UNION ALL, UNION, INTERSECT, MINUS)

UNION ALL - SQL에서 두개의 SELECT 문장을 UNION ALL로 연결하면 각문장이 반환하는 결과가 모두 조회된다. -두 SELECT절에서 사용하는 컬럼의 데이터형과 수는 일치해야한다. -SELECT 문이 2개여도 첫번째 SELECT 문에서 사용된 컬럼명으로 조회된다. 1 2 3 4 5 SELECT emp_id, emp_name, gender, age From emp03 UNION ALL SELECT emp_id2, emp_name, gender, age FROM emp08 cs SELECT 문장이 두개지만 집합연산자로 인해 하나의 문장으로 결과값이 연결되어 나온다 UNION - UNION ALL과 동일하나 한가지가 다름( 중복된 데이터가 존재할경우 그 데이터 1건만 조회된다) - 만약 아래..

데이터베이스 2021.02.11

[Oracle] 데이터 집계( GROUP BY절, HAVING절, 집계함수)

데이터 분석의 가장 기본적인 단계는 테이블에 있는 데이터를 특정 컬럼 기준으로 집계 하는것이다. * 데이터 집계를 하려면 GROUP BY 절과 집계 함수를 동시에 사용해야한다 GROUP BY절은 아래와 같이 WHERE 절과 ORDER BY 절사이 위치해 집계할 대상 컬럼이나 표현식을 명시하면 된다. ( GROUP BY절에 명시한 컬럼이나 표현식은 SELECT절에도 명시해야됨!) 1 2 3 4 5 SELECT station_name FROM subway_statistics WHERE gubun = '승차' GROUP BY station_name ORDER BY station_name cs 주요 집계함수 (집계 함수는 SELECT 절에서만 사용할수 있다.) COUNT (expr) expr의 전체 개수를 반환..

데이터베이스 2021.02.11

[Oracle] SQL 연산자와 주요 SQL함수

SQL 연산자란 피연산자를 대상으로 특정 연산을 수행후 결화를 반호나하는 역할을 한다. SQL에서 피연산자는 개별 데이터나 데이터로 이루어진 표현식이다. 연산자 설명 + 두 수나 두 날짜를 더함 - 두 수나 두 날짜를 뺌 * 두 수를 곱함 / 왼쪽 수를 오른쪽 수로 나눔 || 두 문자를 결합함 아래와 같이 || 연산자 같은경우 , dual테이블 (오라클에서 제공하는 임시테이블)로 문자열을 결합해 반환할수 있다 1 2 select 'a' || 'b' from dual; cs SQL 함수는 크게 숫자형, 문자형, 날짜형, 형변환 함수가 주요 함수들만 테이블로 정의를 해보겠다 *숫자형 함수 함수명 기능 사용 예 ABS(n) n의 절대값을 반환 SELECT ABS( -1) FROM DUAL; -> 1 CEIL(..

데이터베이스 2021.02.10

[Oracle] 데이터 조회, SELECT 문

SELECT 문의 기본구문은 아래와 같다. 1 2 3 4 SELECT column1, column2 FROM 테이블명 WHERE 조건 ORDER BY 정렬순서; cs 구문 순서는 1. 테이블에 있는 데이터를 조회하기 위해선 먼저 데이터를 가져올 테이블이 필요 - FROM 2. 그 테이블의 어떤 컬럼을 가져올것인지? - WHERE 3. 모든 데이터를 가져올것인지? 아니면 어떤 조건에만 맞는 데이터만 가져올것인지? - SELECT 4. 마지막으로 가져온 데이터를 정렬 하는 순서 - ORDER BY * 조건에 맞는 데이터 조회하기 WHERE 절의 조건식에는, 조건연산자를 사용할수 있다. 기본 코딩 연산자랑 크게 다른게없다, 여러 개의 조건을 동시에 사용할수도 있다. 2개의 조건이 필요하고 모두 만족 해야 할때..

데이터베이스 2021.02.09