목록전체 글 (25)
임도현의 성장

📻OpenCV 란? Open Source Computer Vision의 약자로 영상 처리에 사용할 수 있는 오픈 소스 라이브러리입니다. OpenCV는 이미지와 비디오 처리, 물체 추적, 얼굴 인식, 패턴 인식 등 다양한 컴퓨터 비전 기술을 구현하는 데 필요한 강력한 도구들을 제공합니다. OpenCV는 C++로 개발되었으며, Python, Java, 그리고 여러 다른 언어 바인딩을 통해 다양한 플랫폼에서 사용할 수 있습니다. 😰 컴퓨터 비전이란?컴퓨터 비전(Computer Vision, CV)은 인간의 시각적 능력을 모방하여 이미지를 분석하고 해석하며, 이를 바탕으로 "의사 결정을 내리는 인공지능(AI) 기술입니다." 컴퓨터 비전을 활용하면 이미지, 패턴, 객체를 감지하고 인식할 수 있습니다. 이 기..

📌테스트 코드 왜 작성해야 해?축구 게임을 만들었다고 생각해 보자, 우리 공격수가 상대방 골대에 골을 넣었는데 우리팀 점수가 올라가야 하는데 상대팀 점수가 올라가는 버그가 생겼어 이 문제를 수정하기 위해 매번 직접 실행해서 확인 하면 시간도 많이 걸리고, 실수도할 수 있잖아 이때 테스트 코드는 한번의 실행으로 우리팀 점수가 올랐는지 확인 할 수 있고, 리팩토링이나 코드를 수정했을 때 동작이 잘 됬는지 확인도 할 수 있어 😧테스트 코드의 특징버그 예방 및 조기 발견: 개발 중 작성한 코드가 예상대로 작동하는지 즉시 확인할 수 있으며, 버그를 조기에 발견하고 수정할 수 있습니다.리팩토링의 안전성 확보: 코드 리팩토링을 할 때 기존 기능의 동작이 변하지 않았는지 확인할 수 있어, 코드 변경이 다른 부분에 ..

👀로그 수집하는 이유제가 이전 프로젝트에서 배포를 했을 때 프로그램에 문제가 생겼는데 로그를 확인 할려면 EC2에 접속해 로그 파일에 접속해서 로그를 하나하나 확인을 했다. 하지만 모니터링에 로그를 수집하면 error 정보만 볼 수 있게 할 수 있어 원인을 빠르게 파악하고 문제를 해결 할 수 있게 만들어 보기 위해 사용하였습니다. 🦖Promtail이란? Promtail은 로그 수집기로, 주로 Loki와 함께 사용됩니다. Promtail은 로그 파일을 읽고, 그 내용을 규칙에 맞게 처리하여 로그 데이터를 수집한 뒤 Loki에 전달하는 역할을 합니다. 🥐Loki란? Loki는 로그 수집 및 저장 시스템으로, Grafana와 함께 사용됩니다. Loki는 로그 데이터를 시계열 데이터로 처리하여 로그를 빠르..

🍪파이프라인 구축 왜 해야 해?처음에는 직접 EC2에 접속해서 git pull하고 JAR파일을 직접 실행 하다가 코드가 수정 될 때 마다 계속 접속해서 명령어 쳐 주는게 귀찮아서, 쉘 스크립트를 도입해서 반복 작업을 줄이다가 이것도 귀찮아서 git에 push만 하면 자동으로 배포 되게 하기 위해 CI/CD 파이프라인을 구축해서 완전 자동화를 구현 해 볼려고 해 🤖CI/CD 란?CI는 Continuous Integration 지속적 통합으로 개발자들이 코드를 중앙 저장소에 통합 문제를 최소화하고 코드 변경이 일어날 때 마다 자동으로 빌드 및 테스트가 실행되어 문제가 있는지 즉시 확인할 수 있다. CD는 Continuous Deployment 지속적 배포로 CI를 통과한 이후 자동으로 운영 서버에 배포..

📚객체지향 프로그래밍의 설계 원칙 SOLID란?SOLID란 객체 지향 프로그래밍을 하면서 지켜야하는 5대 원칙으로 각각 SRP(단일 책임 원칙), OCP(개방-폐쇄 원칙), LSP(리스코프 치환 원칙), DIP(의존 역전 원칙), ISP(인터페이스 분리 원칙)의 앞글자를 따서 만들어졌다. SOLID 원칙을 적용하면 코드를 확장하고 유지 보수 관리하기가 더 쉬워지며, 불필요한 복잡성을 제거해 리팩토링에 소요되는 시간을 줄임으로써 프로젝트 개발의 생산성을 높일 수 있다. 🤔단일 책임 원칙 - SRP (Single Responsibility Principle)단일 책임 원칙은 클래스(객체)는 단 하나의 책임(단일 책임)만 가져야 한다.객체가 가진 공개 메서드, 필드, 상수 등은 해당 객체의 단일 책임에 의..

🤯기능 요구 사항문제 리스트를 응답한다.필터링 기능을 문제 리스트에 적용 한다.문제 리스트는 페이징이 되어 응답한다.필터링 목록검색 조건카테고리별 정렬 (Y or N 선택)풀었는 문제 정렬안 풀었는 문제 정렬스터디원이 풀었는 문제이면 스터디원 프로필 이미지 가져오기내가 풀었는 문제인지이런식으로 하나의 API에 조건이 6개이며 동적인 조건은 4개이다. 이럴 때 사용하는 것이 QueryDsl 이다.👩🚀QueryDsl 란?자바 백엔드 기술은 Spring Boot와 Spring Data JPA를 함께 사용한다. 하지만 복잡한 쿼리, 동적 쿼리를 구현하는 데 있어 한계가 있다. 이러한 문제점을 해결할 수 있는 것이 QueryDSL이다. QueryDSL은 자바 코드로 SQL문을 작성할 수 있어 컴파일 시에 ..

🤔모니터링이 필요한 이유?서비스 안정성 유지 (System Reliability)서버, DB, 애플리케이션 등 다양한 컴포넌트가 정상적으로 동작하는지 실시간으로 확인할 수 있음로그만으로 분석하기 어려운 경우, 메트릭 데이터를 기반으로 장애 원인 파악 가능성능 최적화 (Performance Optimization)애플리케이션의 응답 속도, DB 쿼리 성능 등을 모니터링하여 최적화 가능예: 특정 API 호출이 느려지는 패턴을 분석해 코드 개선리소스 관리 (Resource Management)서버의 CPU, 메모리, 디스크 사용량을 지속적으로 체크예: 특정 시간대에 트래픽이 몰린다면 → 서버 증설 or 로드 밸런싱 설정모니터링이 없으면 시스템이 언제, 왜 느려졌는지 또는 장애가 발생했는지 알 수 없다!Pro..

👻 JPA 란?JPA(Java Persistence API)는 자바 진영에서 ORM(Object-Relational Mapping)을 통해 관계형 데이터베이스(RDBMS)와 객체(Entity)를 쉽게 다룰 수 있도록 도와주는 표준 API이다.🍄 ORM(객체 관계 매핑) 란?객체(Entity)와 데이터베이스 테이블을 자동으로 매핑하는 기술SQL을 직접 작성하지 않아도 객체를 저장, 조회, 수정, 삭제 가능👉 Entity 란?데이터베이스의 테이블과 매핑되는 자바 객체@Entity 어노테이션을 사용해 JPA가 관리하도록 설정 😮 JPQL 란?JPQL은 SQL과 비슷하지만 객체를 대상으로 하는 쿼리 언어이다.JPA에서 SQL이 제공하지 않는 기능을 필요로 할 때 주로 사용한다.@Query 어노테이션을 붙..