일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- Spring Security
- spring boot
- web server
- 영속성 컨텍스트
- computer science
- 데이터베이스
- 배포
- Java
- 스프링 부트
- virtualization
- 웹 서버
- 스프링 시큐리티
- vm
- 컨테이너
- 스프링
- spring cloud
- Container
- 도커
- JPA
- 가상화
- HTTP
- CI/CD
- spring batch
- 자바
- 스프링 배치
- 백엔드
- ORM
- mysql
- Spring
- CS
- Today
- Total
목록Computer Science (25)
개발 일기

우리가 흔히 사용하는 HTTP 통신은 무상태성(Statelessness) 및 비연결성(Connectionless) 이렇게 두가지 특징을 가진다. 그러나 채팅기능이나 주식/코인 시세를 실시간으로 조회하는 기능들과 같이 실시간 업데이트가 필요한 경우 서로의 통신이 주기적으로 이루어져야 한다. 이러한 양방향 통신(주기적인 통신) 방법으로 4가지를 정리해보겠다.Polling클라이언트가 일정한 주기로 서버에 데이터를 요청하는 방식HTTP 통신을 기반클라이언트는 특정 주기마다 서버에 새로운 데이터가 있는지 요청(Ajax)하고, 서버는 해당 요청에 대해 응답(장점) 단순한 로직으로 구현이 쉽고 무상태성을 유지할 수 있다.(단점) 요청 주기가 길어지면 데이터가 실시간으로 업데이트 될 수 없으며 요청 주기가 짧아지면 그..

채팅 데이터를 저장하기 위해 NoSQL을 사용해야겠다는 판단이 들어 Dynamo DB는 유료라 래퍼런스가 많은 Mongo DB를 한번 부트 프로젝트와 연결하기 위해 Mongo DB에 대해서 정리해보게 됐다.Mongo DB 대용량 데이터를 처리할 때 우수한 성능을 발휘하는 고성능, 고가용성 및 쉬운 확장성을 제공하는 NoSQL 데이터베이스이다.Document-Oriented 지향➜ 데이터를 배열 및 중첩 Document와 같은 복잡한 데이터 유형을 효율적으로 저장할 수 있는 유연한 JSON과 유사한 형식인 BSON(Binary JSON)으로 저장하여 각 문서는 고유의 스키마를 가지므로, 서로 다른 구조의 문서를 하나의 컬렉션에 저장Schema-less관계형 데이터베이스와 같이 트랜잭션(roll-back, ..

OAuth2.0+JWT에서 Refresh Token을 백엔드 단에서 소유하고 있기 위해 Redis에 저장했다. 그냥 다들 그렇게하니까 그렇게 처리해봤는데 정확히 알고 쓴다는 느낌이 없어서 이번 기회에 Redis에 대해 이해해보고자 한다. Redis란?Redis는 Remote Dictionary Server의 약자로 Key - Value 기반의 비관계형(NoSQL) 오픈소스 DBMS다양한 데이터 타입을 제공하여 다양한 기능에 활용할 수 있다. 예를 들어 sorted sets 타입을 활용한 랭킹 시스템도 구현 가능하다.별도의 SQL 쿼리문이 필요하지 않다.mysql, oracle과 같이 디스크에 데이터를 저장하는 데이터베이스와 달리 redis는 주기억장치인 RAM에다가 데이터를 저장하는 인메모리(In-me..

H2 데이터베이스가 소규모 서비스나 단위 테스트에서 주로 사용되어 종종 개발자분들께서 사용하시는걸 본적이 있다.그래서 H2 Database에 대해 간단하게 정리하는 시간을 가져봤다.H2 Database에 대해H2는 Java로 구현된 작고 가벼운 경량형 오픈소스 관계형 데이터베이스 관리 시스템(RDBMS)이다.테스트 환경이나 임베디드 데이터베이스로 많이 사용Server Mode/In-memory Mode/Embedded Mode 이렇게 3가지 모드가 있다.3가지 모드에 대해 하나씩 들여다 보자In-Memory ModeH2 데이터베이스 엔진을 직접 설치하지 않고 애플리케이션 내부의 엔진을 사용하는 방식메모리 기반으로 동작하게 되는 모드로 데이터가 RAM에 저장RAM을 사용하다 보니 Server Mode에 ..
라이브러리(Library)란?애플리케이션 개발에 필요한 기능인 클래스, 함수 등을 모아놓은 코드의 모음이다.개발자가 소프트웨어를 만들 때 필요에 따라 원하는 긴으을 구현하기 위해 코드의 모음을 가져다 쓸 수 있는 일종의 도구 역할 프레임워크(Framework)란?소프트웨어 개발을 수월하게 하기 위한 소프트웨어 개발 환경이다. Frame + Work의 합성어로 작업을 위한 틀을 제공하는 것이다. 정해진 틀에서 개발해야한다는 단점이 있지만 그 틀을 잘 따른다면 효율을 올릴 수 있다는 장점이 있다. Framework와 Library의 차이 - Inversion Of ControlFramework 와 Library 의 차이는 Flow(흐름)에 대한 제어 권한이 어디에 있느냐 차이이다.프레임워크는 전체적인 흐름을..

창업팀에서 로직 요구 사항이 변경되어서 게시글 페이징 조회 시에 댓글 수를 추가적으로 조회해야 했다.내용 중에 쿼리는 다음과 같은데 GROUP BY를 사용하게 됐다.그런데다음과 같은 에러가 발생하면서 500이 터졌다. 로그를 번역해보면 아래와 같았다.Error Code: 1055. SELECT 목록의 Expression #1이 GROUP BY 절에 포함되어 있지 않으며, 열 'woomzip.u.nickname'이 GROUP BY 절의 열에 기능적으로 종속되지 않은 비집계 열을 포함하고 있습니다. 이는 sql_mode=only_full_group_by와 호환되지 않습니다.사실 잘 와닿지 않았다.이 오류는 MySQL에서 ONLY_FULL_GROUP_BY 모드가 활성화되어 있을 때 발생하는데 이 모드는 GRO..
https://www.youtube.com/watch?v=3VXLD0-Iq8A&list=PLfth0bK2MgIan-SzGpHIbfnCnjj583K2m&index=16

서브넷(Subnet)IPv4는 용도에 따라서 3개의 클래스로 분리했다. 하지만 사용해보니 이 방식은 오히려 비효율적 인 것이었다. 클래스 B를 어느 중소기업체에게 할당했을 경우 만일 그 기업이 65000여개의 아이피를 다 쓰는 것이 아닌 10000개 정도만 쓴다고 가정해보자. 그럼 나머지 50000여개의 IP는 쓰이지 않은 채 이 기업체는 클래스 B의 하나를 점유하고 있는 상태가 되어 버린다.그렇다고 이 기업체에게 C 클래스 IP(256개)를 할당하자니 IP자원이 너무 부족하게 되어 버린다. 즉, 호스트 수에 맞게 IP를 클래스별로 나누어 놓았더니만 안하만도 못한 현상이 발생한 것이다.이도 저도 아닌 이러한 문제를 해결하기 위해 IP를 사용하는 네트워크 장치 수에 따라 효율적으로 사용할 수 있는 서브넷..