본문 바로가기
반응형

전체보기96

SQL 3 Aggregation Aggreation 함수들은 데이터들을 정리해서 보여주는 기능을 한다. 다음과 같은 구조로 이뤄진다. 여기서도 이전과 동일한 데이터를 기준으로 설명이 진행된다. select avg(GPA) from Student; avg를 통해 학생들 GPA의 평균을 구할 수 있다. Student 테이블의 GPA attributes의 평균을 구하는 것이므로 쉽게 이해할 수 있다. select min(GPA) from Student, Apply where Student.sID = Apply.sID and major = 'CS'; min을 통해 CS 전공에 지원한 학생들의 GPA 중 가장 낮은 값을 구한다. 당연히 max는 최댓값을 구하는데 사용된다. select count(*) from College.. 2022. 9. 28.
SQL 2 Subqueries in WHERE clause Select 문은 fig 1-2처럼 구성이 되는데 또다른 Select문을 Where문 안에 위치 시킬 수 있다. 그리고 이것을 서브쿼리라고 한다. select sID, sName from Student where sID in (select sID from Apply where major = ‘CS’); 결과만 보면 전공을 CS로 선택한 학생들의 ID와 이름을 가져온다. 굳이 이렇게 하지 않고 일반적인 select 문으로 고쳐보면 다음과 같다. select distinct Student.sID, sName from Student, Apply where Student.sID = Apply.sID and major = ‘CS’; 여기서는 sID를 Student... 2022. 9. 23.
SQL 1 이번 글에서는 SQL에 대해서 다뤄볼 것이다. SQL은 모든 주요 상업 DBMS에서 사용이되며, 표준화되어있다. GUI나 프롬프트 등으로 상호작용이 가능하고 관계대수를 기반으로 declarative(선언형)한 프로그래밍 언어이다. 여기서 선언형이란 작업을 진행하기 위해 무엇을 진행할 것인지를 나열하는 것이다. 명령형 프로그래밍 언어인 c나 java처럼 작업을 어떻게 하는지 정의하지는 않는다. SQL은 몇 종류의 명령어로 나눌 수 있는데, 이전에 설명한 DDL, DML과 기타 명령어(index, constraints, ...)로 나눌 수 있다. 시작하기 전에 가장 자주 쓰이는 SELECT문의 형태를 예시로 보자. Select A1, A2, ..., An From R1, R2, ..., Rm Where co.. 2022. 9. 19.
[Spring Boot, Spring Security, Data JPA] 로그인/로그아웃 2 이번에는 reissue와 로그아웃을 기능을 구현해볼 차례이다. 저번 글에서 확인해서 알겠지만 refresh token을 관계형 DB에 저장하지 않고 redis라는 인메모리 비관계형 DB에 저장했다. 아무래도 reissue 요청이나 로그아웃 요청은 빈번히 발생하기 때문에 성능적으로도 유리한 것도 있지만, 사실 프로젝트 수준에서 이는 크게 체감되지 않았고 오히려 데이터 저장 시간을 간단히 설정할 수 있다는 점이 유용하다고 생각했다. 어쨌든 이 글에서는 reissue, logout 기능을 어떤 식으로 구현했는지 살펴보자. Reissue access token의 유효기간은 5분정도로 설정해놓았다. 그리고 클라이언트에서 유효기간 만료 몇 초전에 access token과 refresh token을 body에 담아 .. 2022. 9. 18.
반응형