목록 분류 전체보기 (295)
AWS 스토리지 서비스- EBS (Elastic Block Store): 내 컴퓨터에 직접 꽂는 SSD. 속도가 가장 중요할 때 사용. 1:1 연결.- EFS (Elastic File System): 사무실 여러 컴퓨터가 함께 쓰는 네트워크 공유 폴더(NAS). 파일 공유 시 사용. 다수:1 연결.- S3 (Simple Storage Service): 용량 무제한의 웹하드. 백업, 데이터 레이크, 파일 서빙 등 범용적 목적. API/URL 연결.1. S3 (Simple Storage Service)- 개념 : 용량 무제한의 웹하드(Dropbox). 백업, 데이터 레이크, 파일 서빙 등 범용적 목적. API/URL 연결.- 스토리지 타입 및 연결: - 객체(Object) 스토리지. 파일(객체)과 메타데..
AWS 보안 서비스- Secrets Manager: 비밀 정보의 수명 주기 관리 및 자동 교체.- ACM: SSL/TLS 인증서의 발급 및 자동 갱신.- KMS: 데이터 암호화에 사용하는 암호화 키 생성 및 제어.- Parameter Store: 설정값 및 자동 교체가 불필요한 단순 비밀 정보 관리. 서비스 상세 정보Secrets Manager- 핵심 목적: 비밀 정보의 저장, 감사, 자동 교체 등 수명 주기 관리.- 관리 대상: DB 패스워드, API 키, OAuth 토큰.- 핵심 기능: 자동 비밀 교체, 세분화된 접근 제어, 중앙 감사.- 비용 구조: 비밀 개수와 API 호출 수에 따라 과금.- 주요 통합: RDS, DocumentDB 등 데이터베이스 서비스. ACM- 핵심 목적: SSL/TLS 인증..
1. Kotlin 핵심 문법1.1 data classJava의 DTO/VO를 한 줄로 만든다. equals, hashCode, toString, copy가 자동 생성된다.// Java로 치면 @Data @AllArgsConstructor 붙인 클래스data class Target( val id: String, val name: String, val url: String)val t = Target("1", "API", "http://...")val t2 = t.copy(name = "변경됨") // name만 바꾼 새 객체 주의: data class의 equals/hashCode는 주 생성자의 프로퍼티만 비교한다. body에 선언한 프로퍼티는 무시된다.data class User(val ..
Single-cycle based mips simulator싱글 사이클 기반의 mips simulator를 디자인한다. github : https://github.com/ecsimsw/simple-computer-architecture/tree/b.single_cycle ConceptsSingle-Cycle processor CPU는 내부 회로를 동작시키기 위해 일정한 주기로 규칙적인 전기 신호를 발생시키는데 이를 Clock이라고 한다. 즉 1 clock cycle은 한 번의 전기 신호를 말하고, 한 클럭에 걸리는 시간을 클럭 주기(Clock Period 또는 Clock cycle time)이라고 한다. 싱글 사이클 프로세서는 그 사이클 동안 하나의 명령어를 처리하는 프로세서를 의미한다. Control..
Backlog Backlog는 연결 대기할 수 있는 큐의 사이즈이다. 사용자와 연결이 완료되었지만 애플리케이션에서 처리하지 못하는 상황인 경우 (ex, 동기 처리 또는 사용 가능한 스레드 부족)에 연결을 큐에 담아두는데, 그 사이즈를 말한다. 보다 자세히 TCP의 3way Handshake를 보면 아래 그림과 같다. 서버는 클라이언트로부터 전달 받은 SYN을 syn_queue에 저장해두고, SYN+ACK 패킷을 클라이언트에 전달하게 된다. 이때 지정한 시간동안 클라이언트에서 ACK 패킷이 제대로 오지 않는다면, 이 syn_queue 안에 연결을 확인하여 클라이언트에 다시 지정된 시간 간격으로, 지정된 횟수 재시도하는 것이다. 그리고 이렇게 ACK 패킷을 전달받은 요청이 완료된 연결을 accept_queu..
Web server with socket APISocket API를 이용하여 Http 형식의 요청을 처리, 응답할 수 있는 웹 서버를 제작한다.github : https://github.com/ecsimsw/multiplexing-server Steps1. Socket API를 구현한 간단한 Socket Server를 제작한다. - Socket server를 구현하고 client 연결, 메시지를 처리한다. - Http 요청, 응답 포맷을 확인하고 Socket Server가 이를 해석, 처리, 반환할 수 있도록 한다. - Jsoup을 이용하여 html 파일을 변환, 사용자의 접근에 따른 동적인 페이지를 반환한다.2. Multi-Threading을 이용한 비동기 요청 처리를 구현한다.3. Sele..
라인의 오픈소스 행사 최근에 LINE의 테크 블로그에서 `Open Source Sprint 2021: 오픈소스에 잘 기여하는 문화 만들기`라는 오픈소스 기여를 위한 행사가 주최된 후기를 읽을 수 있었다. 라인에서 공개하고 사용하고 있는 오픈소스 프로젝트에, 제1사용자인 라인 개발자들이 좀 더 편하게 기여할 수 있도록 또는 활동에 동기를 줄 수 있도록 하기 위한 행사인 것 같았다. 그리고 언제나처럼 그들에 대한 동경심과 개발 욕구?가 불타서 한 동안 내가 기여할 수 있는 오픈 소스를 알아봤었다. 솔직히 아무것도 모르고 Spring boot 저장소의 PR을 보면서 `나도 한번?`이라는 감히 큰 꿈도 가졌었는데, 너무 어려워서 점점 탐색하는 프로젝트 규모가 작아졌던 웃픈 기억이 있다. 🥲 이런 행사들과 기업이..
결과를 먼저 보면..원했던 결과부터 소개하고자 한다. 내 라이브러리를 만들어 사람들한테 소개하는 것. 딱 아래처럼 사용자들이 gradle이나 maven의 dependency로 내가 만든 모듈을 import 해 사용하도록 하고 싶었다. dependencies { ... implementation 'com.github.ecsimsw:fast-crud:0.0.1'} maven central repository는 절차가 까다로워, 좀 더 편하게 jitpack을 사용하기로 했고 Spring boot 모듈을 사용했기 때문에 생겼던 문제들과 해결 팁을 소개하고자 한다. (예시에서 나온 fast-crud가 이번에 만들어 배포한 것인데, Spring boot - JPA 프로젝트에서 Entity에 어노테이션 하..