분류 전체보기

· Devops
여행 관련 서비스를 개발하면서 프론트엔드와 협업을 위해 AWS EC2로 간단하게 서비스를 배포했습니다.하지만 코드의 변경 및 기능 추가가 있을 때마다 EC2에 접속하여 실행 중인 서비스를 종료하고 jar를 최신화하고 재실행하는 과정에서 휴먼 에러와 재배포 과정에서의 시간적 딜레이가 발생했습니다.이로 인해 CI/CD의 필요성을 느끼게 되었고, Github Actions의 CI/CD를 통해 위의 문제를 해결하고자 하였습니다.  CI/CD 란?CI/CD는 지속적 통합(Continuous Integeration) 및 지속적 제공/배포(Continuous Delivery/Deployment)를 의미한다.여기서 지속적 통합(CI)는 코드 변경 사항이 있을 경우 주기적으로 빌드/테스트되어 공유 레포지토리에 통합되는 ..
· 자잘한 cs
Bytebytego 블로그를 읽으면서 최근에 관심이 생긴 Redis에 대해서 글을 찾다가, Redis가 빠른 이유에 대한 글을 읽고 정리하게 되었습니다. Ram 기반 데이터베이스디스크 대신 메모리에 데이터 저장메모리는 CPU와 직접 연결되어 있기 때문에 CPU에서 빠르게 데이터를 검색 가능높은 읽기/쓰기 처리량과 낮은 latency가 장점데이터 저장시 메모리 크기에 제한된다는 단점IO 멀티플렉싱 & 단일 스레드비동기 IO를 사용하여 여러 클라이언트 요청을 동시에 처리가능높은 처리량을 유지단일 스레드인 레디스는 멀티 스레드를 사용하는 데이터베이스의 컨텍스트 전환 비용이 들지 않음멀티 스레드는 스레드 간의 컨텍스트 전환 비용 발생 & 락을 사용하고 동기화를 위한 메커니즘으로 인해 처리량이 떨어질 수 있음네이..
· Community
bytebytego라는 블로그를 보다가 흥미로운 주제를 발견하여 간략한 글을 쓰게 되었습니다.  전략Database Indexing (데이터베이스 인덱싱)올바른 인덱스를 만들었는 지 확인느리게 작동하는 쿼리문을 최적화 및 리팩토링Caching (캐싱)자주 사용하는 데이터는 캐시에 저장데이터베이스 조회를 비용적인 측면에서 최소화Load Balancing (로드 밸런싱)다수의 서버에 고르게 요청을 분산알맞은 로드밸런싱 타입과 적절한 알고리즘 사용Content Delivery Network (CDN)사용자와 가까운 서버에 정적 콘텐츠 캐시 (배포)지연시간을 줄이기 위해서 지리적 거리를 줄임Async Processing (비동기 처리)긴 작업을 수행할 때 요청 흐름을 차단하지 않기작업들에 대해서 백그라운드로 실..
· 자잘한 cs
@Transactional 어노테이션에 대해서 공부를 하던 중 @Transactional 어노테이션을 사용하게되면 스프링에서 해당 메서드에 대한 프록시를 만든다는 글을 보고 프록시 패턴에 대한 궁금증이 생겨 정리하게 되었습니다. 개념대상 원본 객체를 대리하여 대신 처리하게 함으로써 로직의 흐름을 제어하는 행동 패턴이다.어떤 객체를 사용하고자 할 때, 객체를 직접적으로 참조하는 것이 아닌 해당 객체의 프록시 객체를 통해 대상 객체에 접근하는 방식을 사용하면 해당 객체가 메모리에 존재하지 않아도 기본적인 정보를 참조하거나 설정할 수 있고, 실제 객체의 기능이 필요한 시점까지 객체의 생성을 미룰 수 있다.  사용 시기접근을 제어하거나 기능을 추가하고 싶은데, 기존의 특정 객체를 수정할 수 없는 상황일 때초기화..
· 자잘한 cs
이번 글은 reverse proxy의 개념을 간단하게 알아보고자 합니다.아래 첨부된 sse 블로그에서 nginx 부분을 보다가 reverse proxy에 대해서 궁금증이 생겨서 찾아보게되었습니다.  먼저 리버스 프록시는 웹서비스의 성능 향상, 보안 강화 및 유연한 확장성 제공 등 다양한 이점을 제공하며, 많은 서비스에서 활용되고 있습니다. 개념리버스 프록시란 클라이언트와 웹 서버 간의 중개자 역할을 하는 서버입니다.클라이언트로부터 요청을 대신 받아 웹 서버에 전달하고, 웹 서버의 응답을 클라이언트에게 전달하는 역할을 합니다.이를 통해 웹 서버의 부하를 분산시킬 수 있고, 보안을 강화하는 등 다양한 기능을 수행하게 됩니다. 동작 방식클라이언트가 리버스 프록시에 요청을 보낸다.리버스 프록시는 요청을 웹 서버..
· Community
전에 커리어리 앱을 보면서 자바 스프링으로 개발하는 개발자 지망생으로서 좋은 글을 공유하면 좋겠다는 생각에 해당 글을 쓰게 되었습니다.개인적으로 2024년 버전이지만 25년, 26년 ... 이 되어도 도움이 되지 않을까 싶습니다. Q&A스프링 프레임워크란 무엇인가요?자바 엔터프라이즈 애플리케이션 개발을 위한 가장 널리 사용되는 프레임워크입니다.경량화, 제어 역전(IOC), 관점 지향 프로그래밍(AOP), 트랜잭션 관리 등의 기능을 제공합니다.스프링을 사용하면 어떤 장점이 있나요?경량화로 프레임워크로 인한 개발 오버헤드가 적습니다.IoC 컨테이너가 객체 간 의존성 주입을 관리해줍니다.AOP로 핵심 로직과 시스템 서비스를 분리할 수 있습니다.대표적인 스프링 하위 프로젝트들은 무엇인가요?스프링 코어: IoC/..
· Devops
오늘은 제가 어제 4/30일에 2시간동안 삽질한 jenkins와 tomcat 연동에 대해서 정리할 겸 글을 쓰려고 합니다.환경 버전Mac M1 Sonoma 14.4.1Tomcat 9.0.88jenkins 2.4.55docker 25.0.3Tomcat 설치https://tomcat.apache.org/download-90.cgi저는 9버전을 설치하였고 맥북을 사용하기 때문에아래 tar.gz을 클릭해서 다운로드를 받았습니다. Tomcat 설정 변경Tomcat port 변경tomcat이 설치된 경로로 가서/conf/server.xml 파일을 열어서 Connector의 port를 8088로 변경합니다.Tomcat 서버가 어디서든 접속하도록 설정/webapps/manager/META-INF/context.xml에..
설명스프링 시큐리티 설정 파일을 다음과 같이 설정했는데 로그인을 시도할때마다 JwtFilter에 걸려서 에러가 발생하고 있었습니다 ㅠㅠ@Beanpublic SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http .cors((cors) -> cors .configurationSource(ne..
망규
'분류 전체보기' 카테고리의 글 목록 (2 Page)