본문 바로가기

Backend27

[BackEnd] CI/CD Jenkins Jenkins, git WebHook, CI/CD 요약 Jenkins: Jenkins는 지속적 통합(Continuous Integration, CI) 및 지속적 배포(Continuous Deployment, CD)를 지원하는 오픈 소스 자동화 도구. Git 웹훅: Git 웹훅은 Git 저장소에서 발생하는 이벤트를 트리거로 하여 특정 URL로 HTTP POST 요청을 보내는 기능. 예를 들어, 코드가 푸시되거나 브랜치가 업데이트되는 등의 이벤트가 발생하면 Git 웹훅이 설정된 URL로 이벤트 정보를 전송. CI/CD (Continuous Integration/Continuous Deployment): CI/CD는 소프트웨어 개발 프로세스의 일환으로, 지속적으로 소스 코드를 통합하고 테스트하며, 성공적으로 .. 2024. 4. 15.
카테캠 - JAVA 프로그래밍 학습 내용 JAVA 프로그래밍 인텔리제이 단축키 - 검색, 코딩, 디버깅 클래스로 객체 모델링 꿀팁 인텔리J 단축키 요약 Optimize Imports 단축키 : ⌃⌥O 코드에 작성되어 있는 불필요한 import 문을 삭제/추가/정렬하여 최적화 해주는 기능입니다. 사용하지 않는 import문은 삭제를 하고, 특정 패키지의 여러 클래스나 인터페이스를 개별적으로 import 하고 있으면 이를 묶어 상위 패키지의 전체를 import, 그리고 package 명에 따라 정렬까지 해주는 기능입니다. 코드를 작성하고 Git에 코드를 push 하기 직전에 import 구문을 정리하기 위해 자주 사용합니다. Override Method 단축키 : ⌃O Override/Implements 할 함수의 코드를 작성해주는 기능.. 2024. 4. 15.
동기,비동기 처리 필요성 및 소켓서버 동기와 비동기 소켓 서버는 네트워크 프로그래밍에서 중요한 개념입니다. 동기 소켓 서버는 클라이언트의 요청을 순차적으로 처리합니다. 한 요청이 완료될 때까지 다음 요청은 대기 상태에 머무릅니다. 반면, 비동기 소켓 서버는 여러 요청을 동시에 처리할 수 있습니다. 이는 서버의 효율성과 성능을 크게 향상시킵니다. 예를 들어, 동기 소켓 서버는 은행 창구와 비슷하다고 볼 수 있습니다. 한 사람이 창구에 서서 업무를 처리하고 나가면, 다음 사람이 창구에 서서 업무를 처리합니다. 이런 방식은 간단하고 이해하기 쉽지만, 한 사람이 업무를 처리하는 동안 다른 사람들은 대기해야하므로 효율성이 떨어질 수 있습니다. 반면에 비동기 소켓 서버는 슈퍼마켓의 계산대와 비슷하다고 볼 수 있습니다. 여러 사람들이 동시에 계산대에 서.. 2024. 3. 23.
[Spring] 배치 스케줄러-작성중 배치 프로세싱 개요 배치 프로세싱은 주기적으로 발생하거나 반복적으로 처리해야 하는 작업을 자동화하기 위한 도구입니다. 이를 위해 스프링 배치와 쿼츠 스케줄러가 주로 사용됩니다. 주요 도구 스프링 배치 (Spring Batch): 스프링 프레임워크의 핵심 요소를 활용하여 배치 프로세싱을 구현합니다. 쿼츠 스케줄러 (Quartz Scheduler): 오픈소스 기반의 스케줄러로, 주기적으로 작업을 실행할 수 있습니다. Cron 표현식 스케줄러를 설정할 때 사용하는 Cron 표현식은 다음과 같습니다. 초 분 시 일 월 요일 연도 리눅스 / 유닉스 크론 표현식 분(0-59) 시간(0-23) 일(1-31) 월(1-12) 요일(1-7) 연도(1970-2099) 쿼츠 크론 표현식 초(0-59) 분(0-59) 시간(0-.. 2024. 3. 23.
[Spring] PostConstruct를 사용한 테스트 환경 구축 간단한 웹 프로젝트를 진행하면서 테스트할 때마다 데이터베이스에 데이터를 추가해야 하는 번거로움을 겪었습니다. 이를 해결하기 위해 TestData 클래스를 만들어 스프링 빈으로 등록하고, init() 메서드에 @PostConstruct를 적용하여 스프링 컨테이너에 빈이 등록될 때 자동으로 테스트 데이터를 DB에 추가하도록 하였습니다. 그런데 Member, MemberService, MemberRepository 클래스를 구현한 결과를 살펴보니 MemberService에는 @Transactional을 걸어주었지만, MemberRepository에는 @Transactional을 걸어주지 않았습니다. TestData 클래스에서는 MemberService와 MemberRepository를 모두 주입받아서 테스트용.. 2024. 3. 23.
[Spring] JPA 일반적으로 서비스가 실행되면 데이터는 데이터베이스에 최종적으로 저장됩니다. 데이터베이스 모델 중에서도 관계형 데이터베이스는 일반적으로 사용되며, 주로 키(pk)를 사용하여 값을 조회합니다. 자바 개발 환경에서는 JDBC API를 사용하여 데이터베이스와 직접적으로 연결합니다. JDBC 예제 코드를 살펴보면 connection을 생성하고 SQL 쿼리를 전송하여 데이터를 주고받은 후, connection을 닫는 형태를 가지고 있습니다. 이러한 반복적인 로직을 개발자가 매번 작성하는 것은 비효율적입니다. 이러한 반복을 줄이기 위해 SQL Mapper, ORM 등의 기술이 등장했는데, 오늘은 ORM의 개념을 담은 JPA에 대해 살펴보겠습니다. JPA는 Java Persistence API의 약자로, 자바 진영의 .. 2024. 3. 23.
다채널 CCTV 사람 객체 이상행동 감지 및 추적 @PostConstruct 어노테이션을 사용하여 스프링 프레임워크에서 사용되는 초기화 메서드를 지정하였다. 해당 메서드는 빈(Bean)이 생성된 후에 자동으로 호출되어 초기화 작업을 수행하도록 구성했다. 3.4.1.JWT 인증인가 token을 통한 로그인/로그아웃 기능 & 사용자 접근 권한 부여 및 제어 JWT 기반 인증 방식을 사용하여 Client가 Server에게 요청을 보낼 때 HTTP의 Header에 이전에 Server로부터 발급받은 JWT를 담아 보내고, 이를 기반으로 Server가 Client를 식별하는 방식을 뜻한다. 클라이언트에서 패스워드를 통하지 않고 암호화된 token기반으로 로그인/로그아웃 성공 여부를 파악하기 때문에 보안성이 높다. 3.4.1.1.회원가입 및 로그인 회원가입 후 로그.. 2024. 3. 23.
[MYSQL] 접속 시 PID 문제 MySQL 완전 삭제하고 재설치하기 (MacOS) MySQL 프로세스 죽이기 (homebrew로 설치했을 경우) brew services stop mysql (launchctl을 등록했다면 내리기) sudo launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist 관련 파일 삭제하기 설치 경로 확인하기 which mysql homebrew로 삭제하기 brew uninstall --force mysql 혹은 brew uninstall mysql --ignore-dependencies brew remove mysql brew cleanup 다음의 라인을 한줄씩 입력해서 삭제한다. sudo rm -rf /usr/local/mysql sudo r.. 2023. 11. 20.
JWT 인증인가 token을 통한 로그인 기능 구현 https://velog.io/@chuu1019/Access-Token과-Refresh-Token이란-무엇이고-왜-필요할까 참조 백엔드는 앞으로의 유지보수와 확장성을 고려하여 MVC model view controller의 기능에 맞추어 제작하였고 그에따라 로그인도 여러 API와 서버 확장성과 보안성을 고려하여 JWT 인증인가 토큰 방식을 사용하였다. 기능1. 사용자보다는 host 유저의 노키즈존 사업장 등록이나 정보보안성과 서버확장성을 위하여 짧은 개발기간이지만 쿠키 또는 섹션을 사용한 소셜로그인 기능보다는 JWT를 사용한 후 확장이 맞다는 판단이 들었다. session 로그인 방식의 문제점은 서버에 세션객체를 저장하여 사용자가 다수인 경우 부하가 높아진다. 따라서 JWT 인증인가 토큰 방식을 사용한 .. 2023. 11. 19.
[DB]MAC, DOCKER 오라클 설정 방법 https://shanepark.tistory.com/400 [MacOS] M1 맥북 도커로 ORACLE DB 실행하기 Intro M1 맥북을 처음 구입 한 이후로 약 1년 반동안, 오라클 데이터베이스를 띄우기 위해 참 많은 노력을 했었습니다. 원래부터 Oracle이 MacOS를 정식 지원을 하지는 않았지만, 그나마 이전의 맥북에 shanepark.tistory.com 위 방법으로 오라클 설치 방법 시행 후 세팅하는 법 추가해야할것 uid로 오라클 지정 docker exec -it oracle id (uid 확인법) sudo chown -R 54321:54321 ~/Documents/oracledb (소유자 및 퍼미션 변경) 등등 권한 부여 읽고쓰기 해도되고 안해도됨 sudo chmod 777 oracle 2023. 11. 19.
[Spring/JWT] Access Token 과 Refresh Token 보호되어 있는 글 입니다. 2023. 11. 14.
[우테코] 1주차 피드백 보호되어 있는 글 입니다. 2023. 10. 29.