목록전체 글 (431)
mojo's Blog
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/lwaTb/btruWkuqEFv/o3NKPvxsY9hxzGptAjrTck/img.png)
데이터베이스를 사용하는 이유? 데이터베이스가 존재하기 이전에는 file system 을 이용하여 데이터를 관리하였다. (현재도 부분적으로 사용됨) 데이터를 각각의 파일 단위로 저장하며 이러한 일들을 처리하기 위한 독립적 애플리케이션과 상호 연동이 되어야 한다. 이 때의 문제점은 데이터 종속성 문제와 중복성, 데이터 무결성이 있다. ※ 데이터베이스의 특징 ① 데이터의 독립성 물리적 독립성 : 데이터베이스 사이즈를 늘리거나 성능 향상을 위해 데이터 파일을 늘리거나 새롭게 추가하더라도 관련된 응용 프로그램을 수정할 필요가 없다. 논리적 독립성 : 데이터베이스는 논리적인 구조로 다양항 응용 프로그램의 논리적 요구를 만족시켜줄 수 있다. ② 데이터의 무결성 여러 경로를 통해 잘못된 데이터가 발생하는 경우의 수를 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/TK8Em/btruNWhCxFx/s1uzEBiUvSxbe5atsZ6Bb1/img.png)
7 계층으로 나눈 이유? 통신이 일어나는 과정을 단계별로 알 수 있으며, 특정한 곳에 이상이 생기면 해당 단계에서만 수정할 수 있기 때문에 7 계층으로 나눈 것이다. ① 물리(Physical) 계층 데이터를 전기적인 신호로 변환해서 주고받는 기능을 진행하는 공간이다. (비트 0, 1 의 통신단위로 통신) 그리고 데이터의 종류나 오류를 제어하지 않는다. 즉, 데이터를 전송하는 역할만 진행하며 대표적인 리피터, 케이블, 허브 등이 있다. ② 데이터 링크(Data Link) 계층 물리 계층으로 송수신되는 정보를 관리하여 안전하게 전달되도록 도와주는 역할을 한다. Point to Point 간의 신뢰성 있는 전송을 보장하기 위한 계층이며 전송 데이터에 대한 CRC 오류제어가 필요하다. (point to poin..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/s4v0D/btruNXs6FmT/MSFgQ2ozo9ahBzmcrYoFSk/img.png)
시작하기에 앞서 ... org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [appConfig.xml]; nested exception is java.lang.IllegalArgumentException: protocol = http host = null 와 같은 에러를 발견하게 될 경우 와 같이 http:// 다음에 라인개행이 있으면 안된다. 아래와 같이 라인개행이 없어야 한다. 웹 애플리케이션과 싱글톤 package hello.core.singleton; import hello.core.AppConfig; import h..
※ Redis 보통 데이터베이스는 하드 디스크 or SSD 에 저장한다. 하지만 Redis는 메모리(RAM)에 저장해서 디스크 스캐닝이 필요없어 매우 빠른 장점이 존재한다. 캐싱도 가능하기 때문에 실시간 채팅에 적합하며 세션 공유를 위해 세션 클러스터링에도 활용된다고 한다. 그러나 RAM 은 휘발성이기 때문에 종료하고 킬 경우 다 날아가는 일이 발생한다. 이를 방지하기 위해서 백업 과정이 존재한다. snapshot : 특정 지점을 설정하고 디스크에 백업 AOF(Append Only File) : 명령(쿼리)들을 저장해두고, 서버가 셧다운될때 재실행해서 다시 만들어 놓음 데이터 구조는 key/value 로 이루어져 있다. (비정형 데이터를 저장하는 비관계형 데이터 베이스 관리 시스템) value 는 총 5..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bPftnv/btruLsNv57z/dPclrczIIgVzupmCBwG59K/img.png)
1. 신규 아이디 추천 문제 링크 : 코딩테스트 연습 - 신규 아이디 추천 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 단순 문자열 구현 문제이다. 문제에서 주어진 7단계를 순차적인 처리 과정을 통해 신규 유저가 입력한 아이디가 카카오 아이디 규칙에 맞는 지 검사하고 규칙에 맞지 않은 경우 규칙에 맞는 새로운 아이디를 추천해주도록 구현해야 한다. 신규 유저가 입력한 아이디가 new_id 라고 할 때, 1단계 new_id의 모든 대문자를 대응되는 소..
※ Transaction Transaction 은 데이터베이스의 상태를 변화시키기 위해 수행하는 작업 단위를 의미한다. 어떠한 데이터베이스의 상태를 변화시키는지 ? 상태를 변화시킨다는 것은 SQL 질의어를 통해 DB 에 접근하는 것을 의미한다. 이때 SQL 질의어로 SELECT, INSERT, DELETE, 그리고 UPDATE 총 4개로 구성된다. 어떠한 작업 단위를 수행하는지 ? 많은 SQL 명령문들을 사람이 정하는 기준에 따라 정하는 것을 수행한다. 예를 들어 생각해보도록 한다. 사용자 A가 사용자 B에게 100 만원을 보낸다고 가정해본다. 이때 다음과 같이 DB 작업을 수행하도록 정한다. 사용자 A의 계좌에서 100 만원을 차감한다. => UPDATE 문을 통한 사용자 A의 잔고 변경 사용자 B의 ..