일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 메소드
- XSS
- 자바
- 캐시의 작동 원리
- selenium
- Kafka
- jwt토큰
- Java
- QA
- 프로세스와스레드의차이
- 자료구조
- springboot
- 헥사고날아키텍처
- nplus1
- N+1문제
- 스프링시큐리티
- kafka배포
- 티스토리챌린지
- 엘라스틱서치
- n8n
- 프로토콜역할
- STOMP
- 테스트케이스
- 오버로딩
- 부트캠프
- 한화시스템부트캠프
- 오블완
- JPA
- 자동화워크플로우
- 하이브리드접근법
- Today
- Total
목록전체 글 (73)
아쿠의 개발 일지
1. 애플리케이션 설계란?애플리케이션 설계는 소프트웨어 개발에서 요구사항을 분석하고 이를 기반으로 기능, 구조, 인터페이스 등을 정의하는 단계입니다.개발자와 디자이너가 협업하여 시스템의 논리적, 물리적 구조를 설계하는 과정으로, 효율적인 구현과 유지보수를 목표로 합니다. 2. 주요 설계 요소2.1 아키텍처 설계정의: 소프트웨어의 전체 구조와 구성 요소 간 관계를 정의하는 작업.핵심 개념:MVC(Model-View-Controller): 데이터를 모델(Model), 사용자 인터페이스(View), 제어 로직(Controller)으로 분리하여 설계.Layered Architecture: 프레젠테이션, 애플리케이션, 데이터 등 계층으로 나누어 설계.2.2 모듈화 설계정의: 시스템을 작은 모듈로 나누어 독립성과 ..

운영체제는 컴퓨터 하드웨어와 사용자 간의 중개자 역할을 하며, 자원 관리와 프로그램 실행 환경을 제공합니다. 오늘은 운영체제의 핵심 개념인 프로세스와 스레드, CPU 스케줄링 알고리즘, 메모리관리, 교착상태를 정리 해보도록 하겠습니다. 1. 프로세스와 스레드1.1 프로세스정의: 실행 중인 프로그램을 말하며, 운영체제로부터 독립된 자원을 할당받습니다.특징:각 프로세스는 독립적인 메모리 공간(Code, Data, Heap, Stack)을 가짐.다른 프로세스와 자원을 공유하지 않음.Context Switching 시 오버헤드가 큼.1.2 스레드정의: 프로세스 내에서 실행되는 단위로, 프로세스의 메모리 공간을 공유합니다.특징:동일한 프로세스의 스레드끼리는 Code, Data, Heap 영역을 공유.Stack은 ..

1. 관계형 데이터베이스와 비관계형 데이터베이스의 개념 및 차이 관계형 데이터베이스 (RDBMS)구조: 데이터를 테이블(행과 열)로 구성하며, 각 테이블은 관계를 통해 연결됩니다.언어: SQL(Structured Query Language)을 사용해 데이터를 관리합니다.특징:정형화된 스키마(사전 정의된 데이터 구조)데이터 무결성과 일관성을 유지 (ACID 특성 지원)사용 사례:금융 시스템, ERP, CRM, 트랜잭션이 중요한 시스템비관계형 데이터베이스 (NoSQL)구조: 테이블 대신 다양한 데이터 모델(키-값, 문서, 열, 그래프 등)을 사용합니다.언어: SQL이 아닌 다양한 쿼리 언어 및 API를 사용합니다.특징:스키마가 없거나 유연한 구조대규모 데이터 처리와 빠른 읽기/쓰기 작업에 최적화CAP 이론에..

Apache Spark란 ?Apache Spark는 대규모 데이터를 빠르게 처리하기 위한 분산 컴퓨팅 시스템입니다. Spark는 메모리 내 처리(in-memory processing) 방식으로, 하둡(MapReduce)보다 빠르게 데이터를 처리할 수 있습니다. Spark는 다양한 데이터 소스와 통합이 가능하고, 실시간 처리(Streaming), 기계 학습(MLlib), SQL 쿼리(Spark SQL), 그래프 처리(GraphX) 등 여러 용도로 사용할 수 있습니다. Spark 활용 방법데이터 처리: Spark는 RDD(Resilient Distributed Dataset)를 사용하여 데이터를 분산 처리합니다. 이를 통해 대규모 데이터를 빠르게 처리할 수 있습니다.실시간 데이터 처리: Spark Strea..

다음 사진은 채팅 기능에 Kafka 기술을 적용한 것입니다. Kafka를 도입한 이유로는, 확장성 및 신뢰성: STOMP 기반의 세션 관리는 단일 서버 환경에서는 한계가 있었습니다. 다중 서버 환경에서 메시지 손실과 확장성 문제를 해결하기 위해 Kafka를 도입하였습니다. Kafka는 사용자가 다른 서버에 접속해도 메시지를 안정적으로 전달받을 수 있도록 해줍니다.세션 관리: 여러 서버를 운영하는 환경에서 Kafka를 통해 서버 간 세션을 관리하여, 메시지의 일관성과 신뢰성을 보장하였습니다. 적용 예시로는, Kafka의 Pub-Sub 모델을 활용하여 동일한 토픽을 구독한 클라이언트들에게 안정적으로 메시지를 전송하고, 여러 서버 간의 세션 관리 문제를 해결하였습니다. 이제 이러한 기능을 K8S에서 배포..

전 게시글을 보시면 HTTPS를 사용해야 하는 이유와 SSL 인증서를 다운로드 받고, Key 파일에 대해서 설명을 드렸습니다. 이 키를 사용하여, 인증서를 생성하기 위해 K8S 환경을 만들어놓은 master 계정으로 접속 했습니다.key파일을 옮기기 위해서 FileZilla를 사용하게 되었는데, 이 프로그램을 사용하여 C드라이브에 있는 파일을 K8S 환경으로 옮기는 작업을 진행 했습니다. 물론 내부에서도 가능하지만, 프로그램을 사용하면 손 쉽게 가능하기에 전 아래와 같은 방법을 선택 했습니다. https://filezilla-project.org/ 위에서 다운로드 받으시면 됩니다. 이제 옮기셨으면, 아래를 따라해주세요 ! 1. 인증서 파일을 준비한다. 위에 앞서 말 했던 것 처럼 key 파일을 옮긴 폴더..

CI/CD지속적 통합(Continuous Integration) 및 지속적 제공/배포(Continuous Delivery/Deployment)를 의미하며, 소프트웨어 개발 라이프사이클을 간소화하고 가속화하는 것을 목표로 한다.지속적 통합이란 어플리케이션의 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트 되어 공유 레포지토리에 통합하는 것을 의미한다. 진행 순서를 정리 해 봤을 때 > K8S 배포 기준 Kubernetes 클러스터 배포 및 MetalLB 설정LoadBalancer 서비스 및 Ingress 설정도메인 연결 및 SSL 설정CI/CD 파이프라인 설정 (Jenkins 사용)무중단 배포 설정으로 이뤄집니다. 여기에서 3번째인 도메인 연결 및 SSL설정은 HTTPS로 적용하는 것인데,그 전에 HT..

왜 Ai는 주로 Python을 사용하는가? Python은 간결하고 직관적인 문법 덕분에 빠른 개발이 가능하며, 특히 데이터 과학과 머신러닝에 필요한 풍부한 라이브러리와 프레임워크를 제공합니다. TensorFlow, PyTorch, Scikit-learn 같은 AI와 머신러닝 관련 라이브러리가 잘 지원되고 있으며, 커뮤니티도 매우 활발해서 문제 해결이 상대적으로 수월하다는 점도 Python이 AI 개발에 많이 쓰이는 이유 중 하나입니다. 하지만 꼭 Python으로 Ai를 활용하는 것은 아닙니다. 그렇게 생각에 생각을 더 해서 찾아 낸 방법이 바로 N8N입니다. N8N은 오픈 소스 워크플로우 자동화 도구로, 다양한 서비스를 연결하여 작업을 자동화할 수 있게 도와줍니다. N8N의 장점은 오픈 소스이기 때문에 ..

해당 이미지를 어디선가 많이 보셨을텐데요... 네 맞습니다. 인증 수행 과정입니다.SecurityFilterChain에서 사용하는 필터 중 UsernamePasswordAuthenticationFilter를 통해 인증 처리를 합니다. 위 그림의 인증 수행 과정을 설명하면 다음과 같습니다. 1. HTTP 요청 처리특정 URL에 대해 HTTP POST 요청을 가로챕니다.기본적으로 이 URL은 /login이며, 변경하려면 setFilterProcessesUrl() 메서드를 사용하면 됩니다.2. 사용자 인증 정보 추출필터는 요청으로부터 username과 password 값을 추출합니다.기본적으로 폼 필드는 username과 password로 기대합니다. 커스터마이징하려면 setUsernameParameter(..

오늘은 JWT 토큰 관련해서 공부를 해보았고, 그를 정리해 보려고 합니다. 정리하기 전, 애플리케이션을 개발하다 보면 인증과 인가 등의 보안 기능을 추가해야 할 때가 있습니다.스프링에 보안을 적용할 때 사용하는 Spring Security에 대해서 용어 이해하고 이어가도록 하겠습니다. 1. 인증(authentication)사용자가 누구인지 확인하는 단계를 의미합니다. 인증의 대표적인 예로는, 로그인이 있습니다.로그인은 DB에 등록된 ID,PW를 사용자가 입력한 ID,PW와 비교해서 일치 여부를 확인하는 과정입니다.로그인에 성공하면 애플리케이션 서버는 응답으로 사용자에게 Token을 전달합니다.로그인에 실패한 사용자는 Token을 전달받지 못해, 원하는 리소스에 접근할 수 없게 됩니다. 2. 인가(auth..