본문 바로가기

추가 공부17

데이터베이스 - 관계대수(Relational Algebra) 1. 집합 연산자 합집합(Union, ∪) 교집합(Intersect, ∩) 차집합(Difference, −): 방향성이 존재함 카티션프로덕트(Cartesian product, ×): 집합 사이의 곱셈, 피연산자의 테이블 속성이 동일하지 않아도 됨 ∪,∩,− 연산의 피연산자는 차수(degree)가 같고, 대응하는 속성별로 도메인(타입)이 같아야함 ∪,∩,× 연산은 결합적(associative)이고 교환적(commutative)임 2. 순수 관계 연산자 셀렉트(Select, σ): 릴레이션의 수평적 부분 집합. 튜플 조건식을 만족하는 튜플로 구성된 릴레이션을 결과로 가짐 프로젝트(Project, ∏): 수직적 부분 집합. 타겟 속성으로만 구성된 릴레이션을 의미함. 중복된 튜플은 제거함 조인(Join, ⋈):.. 2023. 10. 16.
Github SSH 등록, Github CLI 인증 ❯ Github SSH 등록 SSH: Secure shell의 줄임말로 보안이 강화된 shell 접속을 말한다. github에 ssh 공개키를 등록하고 ssh를 이용해 git clone을 할 수 있다. 1. SSH 키 생성 ssh 키는 비대칭키로 아래 명령어를 통해 ssh 키페어를 생성할 수 있다. ssh-keygen ssh-keygen 명령어가 실행되면 ~/.ssh/ 경로에 id_rsa(개인키, Private Key)와 id_rsa.pub(공개키, Public Key)가 생성된다. 2. Github에 공개키 등록 터미널에서 아래 명령어를 통해 공개키를 확인하고 복사한다. cat ~/.ssh/id_rsa.pub Github > Settings > SSH and GPG keys를 선택한다. New SSH .. 2023. 9. 13.
코드 컨벤션 설정: Formatter, CheckStyle 적용(intelliJ) 미니 프로젝트를 하면서 코드를 깔끔하게 작성하고싶다는 생각을 했다. 여러가지 방법을 찾아보다가 코드 컨벤션과 관련해 formatter와 checkstyle을 적용할 수 있다는 것을 발견했다. 코드 컨벤션이란 소프트웨어 개발에서 사용되는 코드를 작성할 때 적용되는 일정한 규칙과 가이드라인을 말한다. 코드 가독성을 향상시키고 협업과 유지보수를 용이하게 하며, 일관성 있는 코드 작성을 돕는다. 코드 컨벤션은 팀 또는 프로젝트에 따라 달라질 수 있다. 그중 대표적으로 사용되는 자바 코드 컨벤션은 Google Java Style Guide 이다. 매번 코드 컨벤션 문서를 보고 해당 내용을 직접 적용하기에는 비효율적인 부분이 있다. formatter와 checkstyle을 사용해 자동으로 코드 컨벤션을 적용할 수 .. 2023. 8. 24.
[Spring] HandlerInterceptor HandlerInterceptor Spring MVC에서 HTTP 요청을 처리하는 과정에서 요청과 응답 사이에 Intercept 하여 원하는 동작을 수행할 수 있는 인터페이스를 말한다. 요청을 가로채는 시점의 Spring Context와 Bean에 접근할 수 있다. HandlerInterceptor의 특징은 다음과 같다. 1. 컨트롤러 동작 전/후에 작업 수행이 가능하다. 요청의 전처리(인증, 권한 검사 등)나 후처리(데이터 변환, 로깅 등)에 사용할 수 있다. 2. 체인 형태의 다중 인터셉터: 여러개의 HandlerInterceptor를 등록한 후 체인 형태로 동작시킬 수 있다. 3. 요청 및 응답 조작: HttpServletRequest와 HttpServletResponse 객체를 전달받아 요청과 응.. 2023. 6. 11.
[독서후기] 개발자 상식: 개발자가 되기 전에 알았어야 할 것들(박민경) 부트캠프에서 본격적인 코딩 공부를 시작한지 두달이 지났다. 프로그램에서 제공되는 컨텐츠를 따라가기에도 벅차서 평일 저녁, 주말 할것없이 매일매일 컴퓨터 앞에 앉아 시간을 보낸 것 같다. 특히 내가 진행중인 부트캠프가 '자기주도학습' 방식을 너무 잘 적용하고 있어서 어렵거나 애매한 부분은 검색을 통해 해결하느라 더 많은 시간이 소요되었다. (A 를 몰라서 검색해보면 거기에 또 B가 포함되어있어서 B도 찾아봐야되고... 보다보면 C 도 나오고.....🧐) 다행히 관련된 정보는 다양하게 존재했고, 친절하게 정리되어있는 자료들도 많았다. 그러다 문득, 관련된 책을 한권 제대로 읽어보는게 어떨까 하는 생각이 들었다. 지난번에 부트캠프 추천도서인 [커리어 스킬]을 읽어보기는 했으나 페이지를 넘길수록 내용이 어렵다는.. 2023. 4. 19.
[Java] 이진검색(BinarySearch) 이진 검색은 데이터가 키 값으로 이미 정렬되어 있을 때 적용할 수 있는 알고리즘이다. 이진검색의 시간복잡도는 O(log N) 이다. 전체 범위를 탐색하는 선형 검색과 달리 검색 범위를 1/2로 줄여가면서 찾아가는 방법이다. 아래와 같이 7개의 요소를 가지는 배열에서 값이 23인 요소의 인덱스를 찾는 과정을 살펴보자. 1. 먼저 중앙값을 검색한다. 2. 중앙값과 타겟값을 비교한다. 중앙값인 15가 타겟인 23보다 작으므로 값이 작은 왼쪽 부분은 탐색하지 않고 오른쪽 부분만 탐색한다. 만약 타겟이 15였다면 더 이상 검색을 하지 않고 종료되었을 것이다. 이처럼 크기 비교 결과에 따라 검색 범위가 달라지므로 이미 정렬되어 있는 대상에만 적용할 수 있다. 3. 타겟을 찾을때까지 1과 2의 과정을 반복한다. 위 .. 2023. 4. 19.