본문 바로가기

전체 글109

[네트워크] 네트워크 기초 용어 네트워크/망 (network) 전송 매체를 서로 연결해 데이터를 교환하는 시스템의 모음. 중계장비인 라우터를 이용하여 연결 인터넷 InterNetworking에서 유래된 말로, TCP/IP를 기반으로 전 세계를 연결한 네트워크. 다양한 시스템, 인터페이스, 전송매체, 프로토콜이 사용된다. IP는 공통적으로 사용된다. 인터페이스 시스템과 전송매체의 연결 지점에 대한 규칙 및 표준화된 방법 ex)USB, 물리적 규격 프로토콜 (protocol) 시스템이 데이터를 교환할 때 따르는 임의의 통신 규칙 표준화 (standardization) 서로 다른 시스템이 연동하기 위해 형식을 통일하는 것 시스템 어떤 규칙에 따라 능동적으로 동작하는 대상 ex)물리적: 컴퓨터, 자동차, 자판기, 하드디스크 논리적: 교통신호제.. 2021. 7. 18.
[데이터베이스] 정규화 및 역정규화 정규화 데이터베이스에 저장된 데이터들간 종속성을 분석하여 "1개의 종속성 : 1개의 릴레이션(aka 테이블)"으로 표현시키는 과정이다. 데이터베이스의 논리적 설계 후, 물리적 설계 이전에 정규화를 실행한다. 종속성) 사번을 통해 사원의 이름을 알 수 있고, 이름을 통해 주소를 알 수 있는 등의 관계 정규화를 통해 자료의 중복성을 제거하며, 이를 통해 더 빠른 검색이 가능하다. 삽입, 삭제, 갱신시의 이상현상 또한 제거한다. 이상 현상의 종류 삽입 이상 기본키는 NULL이 될 수 없으므로 기본키를 입력하지 않을 경우 엔티티 무결성 제약에 의해 삽입 이상이 발생한다. 삭제 이상 테이블 내에서 하나뿐인 튜플의 일부 필드를 삭제할 때, 삭제하지 말아야 할 다른 필드까지 함께 삭제되는 경우이다. 수정 이상 특정 .. 2021. 7. 16.
[데이터베이스] 인덱스 인덱스 지식의 중요성 인덱스는 빠른 데이터 검색을 돕지만, 오히려 성능을 저하시키는 경우도 있다. 검색 성능을 높이는 조건들이 존재하며, 이를 알면 더 효율적으로 데이터베이스를 이용할 수 있다. ex)테이블 크기가 작은 경우에는 인덱스를 사용하지 않는 것이 더 효과적이다. 접근하는 데이터의 양을 고려해야 한다. 단일 단계 인덱스 일반적으로 인덱스는 데이터 파일보다 크기가 작다. 따라서 데이터를 검색하는 것 보다 인덱스를 검색하는 것이 더 빠르다. 단일 단계 인덱스의 종류 기본 인덱스 클러스터링 인덱스 보조 인덱스 기본 인덱스 (Primary index) 탐색키가 데이터 파일의 기본키인 인덱스이다. 기본키 필드 하나, 데이터 위치에 대한 주소 필드 하나가 존재한다. '희소 인덱스'라고도 불리며, 여러 행에.. 2021. 7. 16.
[운영체제] 쓰레드 Threads 현재 어플리케이션들은 대부분 멀티쓰레드 방식이다. 하나의 앱 내에 복수의 쓰레드가 이용된다. 쓰레드 이용시 장점은 크게 4가지이다. 응답성 Responsiveness 프로세스의 일부가 막히더라도(blocked), 사용자의 요청을 처리하는 쓰레드는 계속 진행된다. 자원 공급 Resource Sharing 쓰레드는 자신이 속한 프로세스 내부 자원들을 공유한다. 경제성 Economy 프로세스를 생성하는 것보다 쓰레드를 생성하는 것이 빠르다. 프로세스 전환보다 쓰레드 전환이 빠르다. 확장성 Scalability 멀티코어를 이용하는 경우 CPU의 쓰레드를 충분히 활용할 수 있다. 멀티프로세서를 위해 프로그래머가 신경써야 할 5가지 작업 분산 Dividing activities 균형 Balance 데이터 분산 Da.. 2021. 6. 29.
[Spring Security] [invalid_token_response] An error occurred while attempting to retrieve the OAuth 2.0 Access Token Response Spring OAuth 2.0 구글 로그인 직후 발생했다. 메세지를 살펴보면 'jsonMessageConverter'가 null이기 때문이다. jsonMessageConverter가 어떤 변수인지 찾으면 답이 나올 듯하다. 오류가 발생한 GenericHttpMessageConverter클래스의 read메소드를 찾는다. 해당 클래스에 jsonMessageConverter라는 변수는 없다. 따라서 부모 인터페이스인 HttpMessageConverter로 이동해서 찾는다. 여기에도 jsonMessageConverter는 없다. 프로젝트 내에서 HttpMessageConverter의 레퍼런스를 찾는다. Error라는 단어를 포함하고 있는 두 번째 레퍼런스 OAuth2ErrorHttpMessageConverter.. 2021. 6. 22.