| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 boot
- virtualization
- 백엔드
- 스프링 부트
- 스프링 시큐리티
- CS
- 컨테이너
- 스프링
- 배포
- mysql
- 웹 서버
- 자바
- 도커
- ORM
- 가상화
- Hackathon
- 데이터베이스
- spring cloud
- 영속성 컨텍스트
- JPA
- vm
- Redis
- Spring
- Java
- Container
- computer science
- 해커톤
- 스프링 배치
- Spring Security
- CI/CD
- Today
- Total
목록Computer Science (35)
개발 일기
Necessities of cryptographic tools for Information Security1. Network Security: Becuase messages are sent over a public network, so the packet could be intercepted and modified.2. System Security: The data in memory and storage is usually protected by access control mechanisms.However, it can still be vulnerable to attacks such as unauthorized access. So, the sensitive data should be encrypted.?..
드링크리 프로젝트에서는 가게(Store) 정보를 관리하는 과정에서 가게에 등록된 여러 개의 이미지를 저장해야 했고 이를 위해 store_image 테이블을 별도로 분리하여 관리하기로 했다.id이미지의 고유 ID (PK)store_id가게 ID (FK)storeImageUrl이미지 URLstoreImageType이미지 타입 (메뉴, 내부, 기타 등)storeImageDescription이미지 설명이때, 특정 가게(store_id)에 속한 이미지를 빠르게 조회해야 하는 경우가 많기 때문에 MySQL Index를 적용해서 기존 방식과 성능 비교를 해보기로 했다. 조금 더 구체적으로 왜 인덱스를 도입하고자 하는지 정리해보겠다. 왜 인덱스를 도입하고자 하는가?100만 건 이상의 데이터에서 인덱스 기준이 하나도 잡..
프로세스 : 메모리상에서 실행 중인 프로그램스레드 : 프로세스가 할당받은 리소스를 가지고 실제로 실행되는 작업의 단위 (Execution of Unit)시작하기에 앞서 우리가 흔히 프로그램과 프로세스라는 단어를 많이 쓰는데 이 둘을 확실하게 구분하고 갈 필요가 있을 것 같다.💡 프로그램(Program)과 프로세스(Process)의 차이정의실행 가능한 정적인 코드실행 중인 동적인 개체저장 위치디스크(SSD, HDD)에 저장됨메모리(RAM)에서 실행됨상태실행되지 않음 (정적인 상태)실행 중 (동적인 상태)생명주기실행되지 않으면 계속 존재실행이 끝나면 사라짐예제Safari.app, IntelliJ IDEA.app, chrome.exechrome.exe가 실행 중인 상태EX) IntelliJ IDEA → 즉,..
SQLD를 공부했었는데 그때 윈도우 함수에 대해 제대로 이해하지 못하고 통과 해버린 것 같았다.SQL을 공부하면서 뭔가 그룹을 지어서 그 그룹에 대한 통계를 내는 용도로 쓰이는 걸 봤는데 GROUP BY랑 도대체 뭐가 잘 알지 못했다.그래서 도대체 뭐가 다른지 그리고 어떻게 쓰이는지에 대해 간단히 정리해보게 됐다.윈도우 함수(Window Function)SQL의 윈도우 함수란 행과 행 간을 비교, 연산, 정의하기 위한 함수이다. 분석함수 또는 순위함수라고 하기도 한다. 다른 함수들처럼 중첩해서 사용할 수는 없지만 서브쿼리에서는 사용가능하다.❓그래서 GROUP BY랑 뭐가 다른데?가장 큰 차이는 아마 결과(출력) 방식. 즉, 데이터의 유지 방식인 것 같다.조금 더 풀어서 설명해보자면 GROUP BY의 경우..
이전에 컴퓨터 네트워크 시간에 열심히 배웠었지만 한 순간에 까먹어버렸고 중간 중간 개발 공부를 하다보면 튀어나오는 이 용어에 대해 다시 기억을 되살릴 필요가 있다고 생각되어 정리해보게 됐다.OSI 7계층SI 7 계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것으로 각 레이어 별로 역할이 다르다.하나씩 뜯어보자.Application Layer(응용 계층)사용자와 직접 연결되어 네트워크 접근을 돕는 계층데이터 전송을 위한 인터페이스 제공사용자로부터 입력 받은 정보를 하위 계층에 전달한다. Presentation Layer(표현 계층)데이터를 응용 계층에 사용하는 표현으로 변환해주는 계층데이터의 인코딩과 디코딩이 이루어 진다. ex) 문자열을 아스키 코드로Session Layer(세션 계층)..
💡 I/O란 무엇인가요?I/O는 Input/Output의 줄임말로, 컴퓨터 시스템에서 데이터의 입출력을 의미우리가 키보드를 통해 입력을 하거나, 파일을 저장하는 행위 모두 I/O의 일종즉, I/O는 프로그램과 외부 세계(또는 다른 프로그램) 간의 소통 수단입니다.🧾 I/O의 종류I/O는 다양한 방식으로 분류 가능하다.File I/O파일을 읽거나 쓰는 작업입니다. 예: 로그 기록, 설정 파일 불러오기 등Device I/O키보드, 마우스, 프린터 등과의 통신입니다.Pipe I/O프로세스 간의 통신(IPC)을 위한 방법입니다. 예: 리눅스에서 | 파이프 명령 사용Network(Socket) I/O네트워크를 통해 다른 컴퓨터 또는 서버와 데이터를 주고받는 방식입니다. 오늘은 이 Socket I/O에 대해 좀..
채팅 기능을 구현한 것을 보면 WebSocket 그리고 STOMP와 함께 매번 등장하는 RabbitMQ와 Apache Kafka 같은 메세지 브로커에 대해서 정리해봤다.Message Broker Message Broker(메시지 브로커)는 Publisher(송신자)로부터 전달받은 메시지를 Subscriber(수신자)로 전달해주는 중간 역할이며 응용 소프트웨어 간에 메시지를 교환할 수 있게 한다.이 때 메시지가 적재되는 공간을 Message Queue(메세지 큐)라고 하며 메시지의 그룹을 Topic(토픽)이라고 한다.Publisher가 Topic에 맞게 메세지를 가져다 놓기만 하면 각각의 Subscriber는 각자 원하는 Topic의 메세지를 가져갈 수 있는 것이다.Producer와 Consumer가 서..
이전 게시글에서 WebSocket은 한계로 인해 STOMP의 필요성을 알게되었고 해당 프로토콜에 대한 추가적인 이해가 필요하다고 판단하게 되어 정리하게 됐다.STOMP(Simple/Stream Text Oriented Message Protocol)WebSocket과 같은 실시간 메시지 전송 프로토콜에서 사용하는 텍스트(문자) 기반의 메시징 프로토콜WebSocket은 기본적으로 단순히 데이터를 주고받는 통신 방식일 뿐, 그 안에 담기는 메시지의 형식에 대한 정의가 없기 때문에, 메시지를 주고받는 양측이 어떤 형식으로 통신할지를 정해야한다.➜ 이때 STOMP와 같은 서브 프로토콜을 사용하면 메시지 형식과 관련된 표준화된 규약으로 사용한다.주로 메시지 브로커와 클라이언트 간의 통신을 위한 프로토콜로 사용P..