[SpringBatch] 스프링 배치란?
·
Framework/SpringBoot
스프링 배치와 배치 프로그램에 대한 개념 위주로 서술한 글입니다. 🪄 이런 분들이 읽으면 좋아요!배치 프로그램이 뭔지 몰라요스프링 배치를 처음 들어봤어요Batch배치 프로그램이란?배치 프로그램은 대량의 데이터를 정해진 주기나 조건에 따라 자동으로 처리하는 프로그램입니다. 웹 애플리케이션처럼 사용자가 요청을 보냈을 때 바로 요청을 처리하는 것이 아니라, 요청을 일괄적으로 묶어서 한 번에 처리(batch)합니다. 배치 프로그램은 반복적인 작업 처리를 해야 할 때 쓰입니다. 예를 들어 매일 새벽마다 데이터를 백업하거나, 매주 특정 시간에 보고서를 생성하는 등의 작업을 배치 프로그램을 통해 처리합니다. 또한 배치 프로그램은 백그라운드에서 실행되기 때문에 사용자가 실시간으로 신경쓰고 있지 않아도 시스템이 뒤에서..
[CS] 낙관적 락, 비관적 락
·
CS
낙관적 락과 비관적 락의 개념적 차이 위주로 서술한 글입니다. 락(Lock)의 필요성여러 사용자나 프로세스가 동시에 동일한 수정하려고 하는 상황에서, 데이터가 충돌하거나 일관성이 깨질 수 있습니다. 이것을 방지하기 위해 락을 사용합니다.  락이란 데이터베이스에서 여러 트랜잭션이 동시에 동일한 데이터를 변경할 때, 충돌을 방지하고 데이터 무결성을 유지하기 위해 하나의 트랜잭션만이 데이터를 변경할 수 있도록 하는 매커니즘입니다.  이 락은 비관적 락과 낙관적 락으로 나뉘게 됩니다. 비관적 락(Pessiimistic Lock)비관적 락은 데이터의 충돌이 자주 발생할 것으로 가정하고, 트랜잭션이 데이터를 읽거나 수정할 때 즉시 락을 걸어 다른 트랜잭션이 해당 데이터에 접근하지 못하게 하는 방식입니다. 즉, 데이..
[Express] Aws s3 버킷을 이용하여 파일 업로드 구현하기
·
Framework/Node.js
AWS S3 버킷을 이용하여 파일 업로드 로직을 구현하는 방법에 대해 설명한 글입니다. 📍 참고사항1. 해당 글에서는 S3 버킷을 만들고 액세스 키를 발급받는 방법이 생략되어 있습니다.2. 해당 글에서는 Express 프로젝트를 생성하고, DB를 연결하는 등의 방법이 생략되어 있습니다.3. 개발 언어로는 JS를 사용하며, ORM 라이브러리는 typeorm을 사용한 프로젝트입니다. (ORM 라이브러리는 상관 X) 버킷이 아직 없다면 아래 글을 참고해 주세요!https://hulrud.tistory.com/105 [AWS] AWS S3를 알아보고 버킷 만들어보기S3를 알아보고, 실제 S3 서비스를 이용하는 방법을 작성한 글입니다 🔔 사전 준비1. AWS 회원가입2. SpringBoot 3.2.3 버전 프..
[CS] OSI 7계층과 TCP/IP
·
CS
혼공학습단 12기 과제로 혼자 공부하는 네크워킹을 읽고, 정리한 내용을 작성한 글입니다. 아주 긴 서론 혼공학습단을 처음 지원한게 아마 8기인 것 같아요... 그 때는 혼자 공부하는 파이썬으로 혼공 학습단에 참여했는데, 제가 개발 블로그를 시작하게 된 동기가 되어 준 스터디 활동이라 아주 애정합니다. 혼공파 글은 네이버 블로그에서 작성했기 떄문에 이 블로그에선 볼 수 없지만, 혼자 공부하는 MySQL글은 아직도 있답니다...! 처음 혼공단을 할 때에는 고등학교 1학년, 프로그래밍을 배운지 3개월정도 밖에 안 된 병아리... 까마귀였는데 지금은 취업까지 한(정규직은 아니지만) 상태입니다 ㅠㅠㅠ 덜덜 시간이 참 빠르네요... 기술 블로그가 제가 프로그래밍을 공부하는 데에 큰 도움이 되었어요, 남들에게 제 꾸..
[Spring] 내가 생각하는 Spring을 하면서 꼭 알아야 하는 개념들
·
Framework/SpringBoot
Spring을 하면서 꼭 알아야 한다고 생각하는 개념들에 대해 작성한 글입니다. 어떤 개념을 다루는지는 목차를 참고해 주세요! (2024.05.15 업데이트)  최근 스프링 프로젝트를 하면서 다시 개념에 대한 공부를 할 타이밍이란 것을 느끼게 되었습니다. 이유는 이론 공부한 지 너무 오래되어 개념들이 머리 속에서 정리가 안 된 기분이 들어서... 그래서! 이 글에서는 제가 작년부터 스프링을 공부하면서 정리한 개념들을 쭉 나열했습니다.한 개념을 자세하게 설명하지 않았습니다.!만약 어떤 개념을 자세하게 알고 싶어서 이 글을 클릭하셨다면 뒤로 가기를 추천드립니다. 여러 개념을 쓱~ 보고 싶으시다면 이 글이 도움이 될지도 모르겠습니다... ㅎ 1. 계층스프링 부트에는 프로젠테이션, 비즈니스, 퍼시스턴스 계층이 ..
[CS] 비선형 자료구조 그래프, 트리, 힙, 맵, 셋, 해시 테이블에 대해 알아보자
·
CS
비선형 자료구조인 그래프, 트리, 힙, 맵, 셋, 해시테이블에 대해 작성한 글입니다.비선형 자료구조비선형 자료구조란 일렬로 나열하지 않고 자료 순서나 관계가 복잡한 구조를 말합니다.  그래프그래프는 정점(vertex)과 간선(edge)으로 이루어진 자료 구조를 말합니다. 정점(Vertex): 그래프의 구성 요소 중 하나로, 데이터를 저장하는 노드입니다. 예를 들어, 소셜 네트워크에서 사용자나 지역망에서 장치들이 정점이 될 수 있습니다.간선(Edge): 그래프의 정점들을 연결하는 선으로, 노드들 간의 관계를 나타냅니다. 간선은 방향이 있을 수도 있고 없을 수도 있습니다.방향성(Directionality): 간선이 방향 그래프(Directed Graph)일 경우, 방향성이 있습니다. 즉, 간선이 한 정점에서..
[Java] 컬렉션 프레임워크의 HashSet과 HashMap, HashTable과 Hashing이란
·
Programming Language/Java
자바의 컬렉션 프레임워크인 HashSet, Hash Map과 HashTable과 Hashing에 대한 개념을 작성한 글입니다. HashSet HashSet은 자바 컬렉션 프레임워크(Collection Framework)에서 제공하는 Set 인터페이스를 구현한 클래스 중 하나입니다. Set의 특징대로 HashSet은 중복된 요소를 저장하지 않습니다. 또한 저장 순서를 유지하지 않으므로 저장 순서를 유지하고자 한다면 LinkedHashSet을 이용해야 합니다. HashSet은 해시 테이블을 기반으로 하기 때문에 해시 함수에 의해 요소들이 저장되는 공간인 버킷(Bucket)으로 구성됩니다. 요소의 해시 코드를 계산하여 해당하는 버킷에 요소를 저장하고, 동일한 해시 코드를 가진 요소는 동일한 버킷에 저장됩니다...
[CS] 선형 자료구조에 대해 알아보자 (연결 리스트 / 배열 / 백터 / 스택 / 큐)
·
CS
선형 자료구조인 연결 리스트, 배열, 벡터, 스택, 큐에 대해 작성한 글입니다.  선형 자료구조 (Linear Data Structure)선형 자료구조(Linear Data Structure)는 데이터 요소들이 선형적인 순서로 배열되어 있는 자료구조를 의미합니다. 이러한 자료구조에서는 데이터 요소들이 일렬로 연결되어 있으며, 각 요소는 이전 요소와 다음 요소로 직접적으로 연결되어 있습니다. 주요 특징으로는 데이터 요소들의 순서가 고정되어 있고, 각 요소들 간에는 순차적인 관계가 존재합니다. 연결 리스트 (Linked List)연결 리스트(Linked List)는 데이터 요소(Node)가 데이터와 다음 요소를 가리키는 포인터로 이루어진 노드들의 집합입니다. 각 노드는 다음 노드를 가리키는 포인터(참조)를 ..
[SpringBoot] Github Action을 이용한 CI/CD (ElasticBeanstalk)
·
Framework/SpringBoot
CI/CD란 무엇인지, SpringBoot 프로젝트를 Github Action을 이용하여 CI/CD를 하는 방법에 대해 작성한 글입니다. 🔔 준비 사항1. 배포할 SpringBoot 프로젝트2. (1) 프로젝트와 연동되어있는 Github Repository3. SpringBoot 프로젝트가 배포되어 있는 우분투 서버 ⚡️ 참고1. 스프링 버전 3.2.3을 사용하고 있습니다.2. Elastic Beanstalk 서버를 배포중입니다. CI/CD란? CI/CD는 지속적 통합(Continuous Integration) 및 지속적 제공/배포(Continuous Delivery/Deployment)를 의미하며, 소프트웨어 개발 라이프사이클을 간소화하고 가속화하는 것을 목표로 하는 방법론 입니다. (도구를 의미하는..
[AWS] AWS S3를 알아보고 버킷 만들어보기
·
Deploy/AWS
S3를 알아보고, 실제 S3 서비스를 이용하는 방법을 작성한 글입니다 🔔 사전 준비1. AWS 회원가입2. SpringBoot 3.2.3 버전 프로젝트 (3.x.x 버전은 모두 무관합니다.) Amazon S3Amazone Simple Storage Service(S3)는 AWS에서 제공하는 객체 스토리지 서비스입니다. 스토리지란 데이터를 저장하는 장소를 말하며, 객체란 텍스트 파일이나 이미지 파일과 같은 데이터를 말합니다. 객체 스토리지는 기존의 파일 스토리지처럼 폴더 구조는 갖지 않고 객체 키로 데이터를 고유하게 식별해 데이터의 입출력과 관리를 수행합니다. 키만으로 데이터를 관리하기 때문에 간편하게 대용량의 데이터를 저장하고 관리할 수 있습니다. S3는 정적 콘텐츠만 있는 HTML 페이지를 만들고 싶..
[CS] 데이터베이스의 정규화
·
CS
데이터베이스의 정규화 과정과 정규화 원칙에 대해 설명하는 글입니다. 정규화 데이터베이스 정규화는 데이터베이스 설계에서 중복을 최소화하고 데이터 일관성을 유지하기 위해 사용되는 프로세스입니다. 릴레이션 간의 잘못된 종속 관계로 인해 데이터베이스 이상 현상이 일어나서 이를 해결하거나, 저장 공간을 효율적으로 사용하기 위해 릴레이션을 여러 개로 분리하는 과정을 말합니다. 정규형 원칙 정규형의 원칙이란 다음과 같은 원칙을 의미합니다. 같은 의미를 표현하는 릴레이션이지만 좀 더 좋은 구조로 만들어야 함 자료의 중복성은 감소해야 함 독립적인 관계는 별개의 릴레이션으로 표현해야 함 각각의 릴레이션은 독립적인 표현이 가능해야 함 일반적으로 1NF(First Normal Form)부터 5NF(Fifth Normal Fo..
[CS] 토큰 기반 인증과 JWT
·
CS
토큰 기반 인증과 JWT에 대한 개념을 작성한 글입니다. 토큰 기반 인증이란? 토큰 기반 인증은 사용자 인증 확인 방법 중 하나입니다. 명칭 그대로 토큰을 사용하여 사용자를 확인합니다. 토큰은 서버에서 클라이언트를 구분하기 위한 유일한 값입니다. 서버가 토큰을 생성해서 클라이언트에게 제공하면, 클라이언트는 이 토큰을 갖고 있다가 여러 요청을 이 토큰과 함께 신청합니다. 그럼 서버는 토큰을 보고 요청한 사용자가 유효한 사용자인지 검증합니다. 토큰을 전달받고 인증받는 과정 로그인 요청: 클라이언트가 아이디와 비밀번호를 서버에 전달하면서 인증을 요청합니다 토큰 생성 후 응답: 서버는 아이디와 비밀번호를 확인해 유효한 사용자인지 검증합니다. 유효한 사용자일 경우엔 토큰을 생성해서 응답합니다. 토큰 저장: 클라이..