| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- java참조자료형
- 프로그래머스
- java최솟값구하기
- javaJVM
- 비전공자sqld
- java 자료구조 활용
- java set 출력
- 격파르타비전공자
- 인터프린터언어
- java list 출력
- 프로그래머스제일작은수
- java list 저장
- java map
- 컴파일
- 노베이스부트캠프
- java set 저장
- 격파르타장점
- 격파르타합격후기
- 항해15기
- java알고리즘문제풀이
- 격파르타후기
- 항해99후기
- 작은수제거하기
- javaJRE
- java알고리즘
- java map 저장
- sqld자격증합격
- java map 출력
- 코딩부트캠프후기
- java기본자료형
- Today
- Total
목록전체 글 (259)
코딩과 결혼합니다
✏️Monorepo 하나의 레포지토리에 여러 개의 프로젝트를 통합하여 관리하는 방식 모노레포의 등장배경 주로 대형 기업의 소프트웨어 개발 과정에서 발생하는 문제를 해결하기 위해 생기게 되었다. 대형 기업에서 수많은 개발자들이 수천, 수만 개의 프로젝트를 동시에 개발하고 관리해야 하는 상황이 발생하는데 이러한 상황에서 각각의 프로젝트를 독립된 레포지토리로 관리한다면 많은 문제가 발생할 수 있다. 1. 코드 재사용과 공유 동일한 기능이나 컴포넌트를 다른 프로젝트에서 사용하려면, 해당 코드를 복사하거나 공유 라이브러리를 만들어야 했다. 이는 코드 중복과 관리 비용의 증가를 초래하였다. 2. 의존성 관리 다수의 프로젝트 간에 의존성이 존재할 경우, 각각의 프로젝트를 독립적으로 관리하다 보면 의존성 버전 충돌이 ..
문제 기존에는 UserS3Service, PostS3Service 에서 각각 S3에 사진을 업로드하고 이미지 리사이징을 하는 과정을 거쳤다. 중복된 코드들이나 기능이 겹치는 부분이 있어 가독성이 떨어지고 유지보수 면에서도 효율적이지 못하였다. https://coding-s2-chaewon.tistory.com/207 해결 UserS3Service와 PostS3Service 의 공통적인 부분은 S3Service 클래스를 만들어 따로 관리하였다. 사진을 업로드 하고, 리사이징 하는 메서드들이 있다. @Service @RequiredArgsConstructor public class S3Service { private final AmazonS3Client amazonS3Client; @Value("${clou..
✏️WebSocket 서버와 클라이언트 사이에 소켓 커넥션을 유지하면서 양방향 통신이 가능한 기술이다. 동작 클라이언트에서 서버에 HTTP 프로토콜로 핸드셰이크 요청을 한다. 서버에서는 Status Code 101로 응답해 준다. 초기 통신을 시작한 후, 웹소켓 프로토콜로 변환하여 데이터를 전송한다. ✏️STOMP Simple Text Oriented Messaging Prorocol의 약자로, 메시지 전송을 효율적으로 하기 위한 프로토콜로, pub/sub 기반으로 동작한다. 메시지 송신, 수신에 대한 처리를 명확하게 정의할 수 있고, WebsocketHandler를 직접 구현할 필요 없이@MessageMapping 어노테이션을 사용해서 메시지 발행 시 엔드포인트를 별도로 분리해서 관리할 수 있다. 실시..
이미지 업로드 기능 도입 유저프로필과 게시물에 사진을 올릴 수 있게 함으로 사용자의 참여도를 높이고, 커뮤니케이션을 강화한다. S3 사용 이유 높은 내구성과 가용성으로 데이터 손실의 위험을 최소화하고 필요한 만큼의 저장공간을 제공하여 효율적이고 합리적인 비용을 지불하며 사용할 수 있다. 그리고 다양한 보안 기능을 제공하여 데이터를 안전하게 저장할 수 있다. 이미지 리사이징 - BufferedImage를 사용한 이유 Spring에서 기본 제공하는 클래스인 BufferedImage로 이미지 리사이징을 하였다. BufferedImage는 이미지 데이터를 메모리에 저장하는 데 사용되는 클래스이나, 이미지 처리를 위해 사용될 수 있다. 예를 들어 이미지의 크기를 변경하거나, 다른 이미지의 형식으로 변환하거나 이미..
✏️Serverless 개발자가 서버를 관리할 필요 없이 애플리케이션을 빌드하고 실행할 수 있도록 하는 클라우드 네이티브 개발 모델. 서버리스는 동적으로 서버의 자원을 할당하여 자원을 효율적으로 사용할 수 있다. 예를 들어 사용자가 없다면 자원을 할당하지 않고 대기하다 요청이 들어오면 그 때 자원을 할당해서 요청을 처리하고 다시 대기 상태로 들어가게 된다. 또한 개발자는 스케일링, 업데이트, 백업, 보안 등 서버에 대해 일절 관리하거나 신경 쓸 필요가 없어 비즈니스 로직에 집중하여 개발할 수 있다. 클라우드 네이티브 애플리케이션 : 클라우드 컴퓨팅 기법과 기술을 기반으로 애플리케이션을 구축, 실행, 개선하는 것. 클라우 네이티브 개발은 아키텍처의 모듈성, 탄력적인 결합, 독립적인 서비스에 중점을 둔다. ..
✏️Docker Linux 컨테이너 기반의 오픈소스 가상화 플랫폼. Docker를 사용하면 컨테이너를 매우 가벼운 모듈식 가상 머신처럼 다룰 수 있다. Docker는 애플리케이션과 그 환경을 하나의 패키지로 만들어 이를 빠르고 쉽게 배포하고 실행할 수 있도록 도와주는 도구이다. 실행방식 Docker 기술은 여러 프로세스와 애플리케이션을 서로 개별적으로 실행하여 인프라를 더 효과적으로 활용하고 개별 시스템을 사용할 때와 동일한 보안을 유지할 수 있다. Docker를 포함한 컨테이너 툴은 이미지 기반 배포 모델을 제공한다. 따라서 여러 환경 전반에서 애플리케이션 또는 서비스를 모든 종속 항목과 손쉽게 공유할 수 있다. 또한 이 컨테이너 환경 내에서 애플리케이션 배포를 자동화한다. Dockerfile 작성 D..
✏️cache 요청을 받았을 때 더 빠르게 로드할 수 있도록 앱, 서버, 웹 사이트, 또는 브라우저에서 임시 파일 또는 데이터를 저장하기 위해 쓰이는 메모리이다. 데이터가 지속적으로 요청할 때마다 새로운 콘텐츠를 생성하지 않고 액세스 하거나 요청한 데이터를 저장하는 것을 기반으로 한다. CPU캐시 대용량의 메인 메모리 접근을 빠르게 하기 위해 CPU 칩 내부나 바로 옆에 탑재하는 작은 메모리이다. 1980년대 이후 대부분의 CPU는 하나, 많게는 5-6개까지의 서로 다른 기능을 가진 CPU캐시를 장착하고 있다. 디스크 캐시(=디스크 버퍼) 1980년대 후반 이후의 대부분의 하드디스크는 디스크 제어와 외부와의 인터페이스를 위해 작은 컴퓨터를 내장하고 있다. 대개 디스크에 입출력되는 데이터를 저장하는 작은 ..
✏️MSA 하나의 큰 애플리케이션을 여러 개의 작은 서비스로 분리하는 아키텍쳐 패턴을 말한다. 이 작은 서비스들은 각각 자신의 프로세스를 갖고 있으며, 비즈니스 목표를 달성하기 위해 서로 통신한다. 각 서비스는 독립적으로 배포할 수 있고, 각자 다른 프로그래밍 언어와 데이터베이스를 사용할 수 있다. 🔸 MSA의 등장배경 기존의 모놀리식 아키텍쳐의 한계를 극복하고자 하는 시도에서 시작되었다. 모놀리식 아키텍처는 애플리케이션의 모든 구성요소가 한 개의 단위로 시스템의 한 부분이 다른 부분과 강하게 연결되어 있는 구조로 시스템의 규모가 커질수록 코드의 복잡성을 증가시키고, 한 부분의 변경이 전체 시스템에 영향을 미칠 수 있다. 또한, 전체 애플리케이션을 한 번에 배포해야 하므로 배포 과정이 복잡해지고 많은 시..