티스토리

cho
검색하기

블로그 홈

cho

chooobb.tistory.com/m

초비비 님의 블로그입니다.

구독자
4
방명록 방문하기

주요 글 목록

  • 🗃️Redis 명령어 Redis 명령어에 대해서 알아보자!Redis는 엄청 큰 java의 맵이라고 생각하면 Redis 사용이 좀 더 쉬울 수 있음! String 자료형-- String-- ~~~SET user:email alex@example.com #문자열 자료형을 설정GET user:email #문자열 데이터를 가져오기-- 정수가 문자열로 저장된 경우-- INCR, DECR : ++, ---- INCR, DECR : 조회할 때 마다 사용할 수 있음 (조회수)SET user:count 1GET user:countINCR user:count #정수처럼 쓸 수 있는 명령어/ 데이터를 1 증가시킴 (increment)GET user:count #v.. 공감수 0 댓글수 0 2025. 3. 31.
  • 🗃️Redis 소개 및 설치 방법 Redis!!!!말로만 듣던 Redis 강의를 듣게 되었다.강의 내용을 정리하려는데, 오늘은 소개와 설치 방법만 정리해보려고 함!Redis 소개인 메모리 데이터 베이스원래는 오픈 소스였으나, 현재는 상용 라이센스가 적용하지만 일반 개발자에겐 큰 문제는 없음(일반적인 제약X)클라우드 서비스 제공자에게는 라이센스 변경이 있을 수 있음관계형 데이터 베이스(MySQL, Oracle…)테이블 형태로 데이터 저장서비스 종료 후 다시 시작해도 데이터를 그대로 복원할 수 있음영속성, 일관성 측면에 중점보통은 파일 시스템(HDD,SDD)에 데이터 저장파일 시스템에 저장(변경)하는 것은 상대적으로 느림H2는일반적이 관계형 데이터베이스와 다름In-Memory 옵션을 제공하여 메모리 상에 관계형 데이터베이스를 운영할 수 있음.. 공감수 0 댓글수 0 2025. 3. 10.
  • 🎮GitHub CI/CD 오늘은 GitLab에 이어서 GitHub로CI/CD를 구축하는 방법을 남기고자 한다!1. IntelliJ에서 GitHub과 프로젝트 연동설정 > 버전관리 > GitHubGitHub 계정 로그인 확인Git > GitHub > [GitHub에 프로젝트 공유] 클릭저장소 이름 작성 후 [공유] 버튼 클릭ex) project-01오른쪽 하단에 ‘GitHub에서 프로젝트를 성공적으로 공유했습니다.’ 메세지가 뜸2. GitHub으로 이동 GitHub · Build and ship software on a single, collaborative platformJoin the world's most widely adopted, AI-powered developer platform where millions of dev.. 공감수 4 댓글수 1 2025. 3. 6.
  • 🎮GitLab CI/CD 오늘은 CI/CD를 GitLab을 통해서구축하는 방법을 남기고자 한다!1. GitLab 가입 The most-comprehensive AI-powered DevSecOps platformFrom planning to production, bring teams together in one application. Ship secure code more efficiently to deliver value faster.about.gitlab.comGitlab 가입 후Create group 생성Create new projectCreate blank project 생성start.spring.io 에서 Spring 프로젝트 만들기작업 폴더에 만든 프로젝트 압축 풀기2. IntelliJ 프로젝트 연동IntelliJ에서.. 공감수 1 댓글수 0 2025. 3. 5.
  • 🐋Docker 추가 내용, 볼륨(Volume) 마운트 오늘은 Docker 강의를 들으면서정리한 내용을 적어보려고 함! 도커를 사용하지 않았을 때의 배포 방식배포 방식Spring 앱을 Linux 서버에 올려서 실행사용자가 엔드포인트를 통해 접속동일한 버전의 Java, Gradle 등을 수동으로 설치해야 했음서버 관리 이슈동일 서버에서 여러 컨테이너를 설치하려면 Java 버전 충돌이 발생할 수 있어 복잡함DB 구축도 어려움DB 버전이 다르거나 설치 시간이 많이 걸림도커 도입 후 변화버전 관리 불필요도커를 사용하면 버전을 별도로 관리할 필요 없이, 컨테이너 내에서 필요한 환경을 자동으로 설정 가능.DB 설치 간소화도커 명령어 한두 줄로 DB 설치가 가능해져 작업이 매우 간편해짐편리성 증가전체 시스템 환경을 빠르고 효율적으로 구축할 수 있게 됨도커에서의 실수 감소.. 공감수 2 댓글수 0 2025. 2. 28.
  • 🚨Docker 문제 발생 오늘 Docker강의를 들으며 실습을 따라하는데바인딩 폴더명이 이상하게 만들어지고 폴더 안에는 텅 비는 상황 발생이리저리 알아보다가 🐲용쌤 덕분에..해결함⭐이 내용을 오늘 남겨보려고 한다문제 상황강의에서 제공된 container 생성 코드로 진행함(Linux명령어 형식)docker run -d --name postgres-sample \ -p 5433:5432 \ -e POSTGRES_USER=admin1 \ -e POSTGRES_PASSWORD=admin2 \ -e PGDATA=/var/lib/postgresql/data/pgdata \ -v ${로컬_바인딩_폴더}:/var/lib/postgresql/data:z \ postgres 1. 폴더명이 '폴더명;드라이브'로 저장됨2. 폴더 안에 아무것도 .. 공감수 1 댓글수 0 2025. 2. 27.
  • 🗄️다양한 DB들 뭐가 뭔지 알아보자 이번에 프로젝트를 하면서 PostgreSQL를 사용해야했다.근데 왜 PostgreSQL일까 이 아이는 MySQL과 뭐가 다를까 궁금해짐!그래서 오늘은 DB들에 대해서 정리를 해보고자 한다. 📌 데이터베이스 선택은 애플리케이션의 성능, 기능 및 확장성에 큰 영향을 미칠 수 있음데이터 관리의 효율성을 높이고 유지 관리 비용을 줄이며 최종 사용자에게 더 나은 서비스 제공하는데 기여데이터 베이스 선택 시 고려할 사항지원되는 데이터 유형인덱싱데이터 검색 속도동시성 제어잠금 : 여러 사용자가 동일한 데이터를 동시에 수정하지 못하도록 제한낙관적 동시성 제어 : 동시 데이터 액세스를 허용하지만 변경 사항을 커밋하기 전에 충돌을 확인확장성기본 복제본 구성ACID 규정 준수SQL vs NoSQLSQLNoSQL관계형비관계.. 공감수 0 댓글수 0 2025. 2. 26.
  • 🤝Entity 연관관계 JPA를 사용하면서 각 Entity간 연관관계를 매핑하는데필요한 개념을 정리해보자!왜 연관관계를 가져야 하는가?객체지향적인 설계를 할 때, 현실 세계의 관계를 코드로 표현하기 위해 엔티티 간 연관관계를 정의한다. JPA에서는 연관관계를 맺어줌으로써 객체 그래프 탐색이 가능해지고, 연관된 데이터들을 효율적으로 조회할 수 있다. 또한, 적절한 연관관계 매핑을 통해 유지보수성을 높이고, 중복 데이터를 줄일 수 있다.개발자는 현실 세계의 개념을 데이터베이스에 담아야 하는데, 이를 하나의 테이블로 관리할 수 없기 때문에 정규화를 통해 데이터를 나누고 분리하는 과정에서 연관 관계가 생긴다.1:1 관계 (OneToOne)하나의 Entity가 다른 Entity와 단 하나의 관계를 가지는 구조예시User Entity@E.. 공감수 0 댓글수 0 2025. 2. 25.
  • 🗓️Auditing 적용 안되는 문제 해결 BaseEnity에 @EntityListeners(AuditingEntityListener.class)도 붙였고@EnableJpaAuditing도 application에 붙였는데 왜 필드에 값이 안 들어올까?이유at만 있었다면 Main application에 붙인 @EnableJpaAuditing 적용이 되는데 by가 있어서 적용이 안 된다고 한다..🙃by 애들은 SecurityContext에 저장된 인증 정보를 바탕으로 설정되기 때문에, AuditorAware Bean을 명시적으로 등록해야 한다고..그리고 JPA Auditing에서 'at'(날짜/시간) 필드와 'by'(사용자) 필드의 동작 방식이 다르다고 한다.'at' 필드 (@CreatedDate, @LastModifiedDate)메인 애플리케이션.. 공감수 1 댓글수 0 2025. 2. 24.
  • 🎫@AuthenticationPrincipal 과 @RequestHeader @RequestHeader를 사용하라구요? 프로젝트 중 팀원분께서 튜터님에게 면담을 다녀오셨는데,유저 정보를 가져올 때 @AuthenticationPrincipal말고 @RequestHeader를 사용하라고 얘기를 듣고 오셔서 공유를 해주셨다.근데 왜 일까???🙃 궁금해졌다. 그래서 찾아 본 걸 적어보려고 함!@AuthenticationPrincipal@AuthenticationPrincipal은 Spring Security에서 제공하는 어노테이션주로 Spring Security의 인증 정보(로그인된 사용자 정보)를 컨트롤러 메소드에 주입할 때 사용@RestControllerpublic class UserController { @GetMapping("/user/profile") public .. 공감수 0 댓글수 0 2025. 2. 21.
  • ⌛지연 로딩과 영속성 컨테스트 지연 로딩💡지연로딩을 사용하기 위해서는 영속성 컨테스트가 필요 → 해당하는 메소드에 Transaction 환경 설정 → 성능을 높이기 위해 readOnly = true 옵션을 걸음1. 지연 로딩(Lazy Loading)을 사용하려면 영속성 컨텍스트가 필요지연 로딩은 객체를 실제로 사용할 때까지 데이터를 로딩하지 않는 방식JPA에서는 이 방식이 영속성 컨텍스트(Persistence Context)에서 관리되는 엔티티 객체에 대해 적용영속성 컨텍스트가 엔티티를 관리하는 동안에만 지연 로딩이 정상적으로 작동즉, 트랜잭션 범위 내에서 엔티티를 로딩해야 하므로 영속성 컨텍스트가 필요2. 해당하는 메소드에 Transaction 환경 설정지연 로딩은 영속성 컨텍스트가 활성화되어야 하므로, 트랜잭션 범위 내에서 동작.. 공감수 0 댓글수 0 2025. 2. 20.
  • 🤯 첫 PR 혹여나 잘 못 될까봐 너무 떨려 미쳐버리는 줄팀원분들께 도움을 요청해서 처음 PR을 해봤다. 다음에 혼자 할 때, 참고할 수 있도록 기록을 남겨보겠다.우선! 내가 잘 못 알았던 것! GitHub Desktop으로도 PR을 날릴 수 있는 줄 알았는데 -> 아님!Commit과 Push를 편하게 하기 위함이였다!Commit 메세지 작성빨간 박스에 변경된 파일들 확인하고 Commit 메세지를 깃 컨벤션에 맞춰서 작성 후Push가 생기면 클릭GitHub 들어가서 Repository로 이동해서 Pull&Request 진행컨펌이 되면 Merge 진행 끝! 아찔한 사건 발생...develop으로 merge 했어야 했는데.. main으로 해버렸다..(기절팀원 분께서 revert해주셔서 다시 push하고 PR요청 함🥲 .. 공감수 0 댓글수 0 2025. 2. 18.
  • 🧶QueryDSL을 알아보자 QueryDSL이라.. 이 녀석도 처음임..ㅎ 우선 세팅을 먼저 진행해보자!Gradle 추가//QueryDSL의 버전 //plugin 보다 앞에 둘 것buildscript { ext { queryDslVersion = "5.0.0" }}dependencies { //QueryDSL JPA 라이브러리 implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta' // QueryDSL APT(Annotation Processing Tool) annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta" //Jakarta.. 공감수 1 댓글수 1 2025. 2. 17.
  • 🐋Docker 환경구축 1. spring-boot 프로젝트 생성패키지, 파일 임시 생성2. application.properties 파일# MySQL 데이터베이스 연결 설정spring.application.name= 애플리케이션 이름spring.datasource.url= jdbc:mysql://localhost:3306/{mydatabase}spring.datasource.username= 사용자 이름spring.datasource.password= 데이터베이스 접근 비밀번호spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver# Hibernate JPA 설정spring.jpa.hibernate.ddl-auto=updatespring.jpa.show-sql=truespri.. 공감수 1 댓글수 0 2025. 2. 14.
  • 🤯Git 관리 어떻게 하는 건데 여태까지 그냥 브랜치 하나 따로 만들어서 간단하게 commit 내용 적고 push만 해봤다.작업하면 그저 main과 merge만 해봤다.첫 프로젝트가 시작되고 git flow를 처음으로 듣고 멘붕이 왔다.어떻게 하는거지... 그러던 중에 Git & PR특강 소식이💟 따라서오늘있었던 Git & PR 특강의 내용을 정리 해보고자 한다.먼저, Git 이란?코드 형상 관리 시스템(VCS)주요 목적은 코드를 형상 관리하고 협업하기 위함 Git workflowRemote : GitHubLocal : PCWorking directory : 작업공간Staging area : 로컬 레포에 반영하기 전, 검토 공간Local repo : 컴퓨터 저장소에 저장Git-flowgit을 어떻게 적용할 건지브랜치 전략협업 및 버전.. 공감수 2 댓글수 1 2025. 2. 13.
  • 🐋Docker 도커란?애플리케이션을 패키징 할 수 있는 툴컨테이너라고 불리는 작은 소프트웨어 유닛 안에 애프리케이션과 그에 필요한 시스템 툴, 모든 Dependencies를 하나로 묶어서 쉽게 배포하고 안정적으로 구동할 수 있게 도와주는 툴애플리케이션을 구동하는 데 필요한 모든 것들을 Docker Container에 담아 놓음VM과 차이점운영체제를 포함하지 않음컨테이너 엔진이 설치된 HostOS를 공유함📌컨테이너 엔진 중에서 가장 많이 쓰이는 것이 DockerDocker컨테이너를 만들고 배포하고 구동컨테이너 생성Dockerfile 생성 → Image를 만듦 → Container를 구동Dockerfile컨테이너를 어떻게 만들어야 하는 가에 대한 설명서(레시피)Copy Files어플리케이션 구동을 위해 꼭 필요한 파일은.. 공감수 3 댓글수 0 2025. 2. 12.
  • 🚪 카카오 소셜 로그인 세팅 1. Kakao developers 사이트 접속하여 회원가입 진행 Kakao Developers카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.developers.kakao.com2. 상단 [내 애플리케이션] 메뉴 클릭3. [애플리케이션 추가하기] 버튼 클릭4. 팝업 창 정보 입력앱 아이콘 [파일 선택]앱 이름회사명동의 체크 박스 : 체크5. 추가한 애플리케이션 생성됨 → 더블클릭6. 레프트 메뉴 “플랫폼” 클릭 →  [Web 플랫폼 등록] 클릭http://localhost:8080/api/user/kakao/callback활성화 : [ON]으로 활성화 시켜 줌7. 사이드 메뉴 ) "제품설정 > 카카오 로그인 > .. 공감수 1 댓글수 0 2025. 2. 11.
  • 스터디) 공유하면 좋을 내용 논리·비트연산자1. 논리 연산자&& : 둘 다 참(True)이어야 참(True)|| : 하나만 참(True) 이어도 참(True)  주의 할 점!!거짓 && 조건식 : 좌측에서 먼저 거짓이 나오면 어차피 거짓이기 때문에 우측 조건식을 실행을 하지 않음참 || 조선식 : 좌측에서 먼저 참이 나오면 어차피 참이기 때문에 우측 조건식을 실행을 하지 않음관련 문제#include int main(){ int x=10,y=20; if(x++ >= 10 && y++ > 20){ printf("T=x:%d,y:%d",x,y); } else{ printf("F=x:%d,y:%d",x,y); } return 0;}증감연산자 주의!더보기x++ >= 10 이 참이지만 y++ > 20 .. 공감수 0 댓글수 0 2024. 10. 13.
  • 스터디) 2023 정처기 실기 3회 프로그래밍 풀기 2023 정처기 실기 3회 정리https://chobopark.tistory.com/453 문제 복원 블로그문제1. 상속, 오버라이딩public class main{ public static void main(String[] args) { A b = new B(); b.paint(); b.draw(); }} class A { public void paint() { System.out.print("A"); draw(); } public void draw() { System.out.print("B"); draw(); }} class B extends A { public void pai.. 공감수 3 댓글수 3 2024. 10. 11.
  • 스터디) 2023 정처기 실기 2회 프로그래밍 풀기 2023 정처기 실기 2회 정리https://chobopark.tistory.com/420 문제 복원 블로그문제1. 1차원 배열 로테이션int main(void) { int n[5]; int i; for (i = 0; i 입력값이 54321일 경우 출력값이 43215로 출력되어야 한다.더보기n[(i+1) % 5] 범위를 벗어나지 않기 위해 나머지 연산자(%) 이용 문제2. 처리조건 주의public class Problem{ public static void main(String[] args){ m = 4620; a = ( ); b = ( ); c = ( ); d = ( ); Syste.. 공감수 1 댓글수 1 2024. 10. 11.
  • 스터디) 2023 정처기 실기 1회 프로그래밍 풀기 2023 정처기 실기 1회 정리https://chobopark.tistory.com/372 문제 복원 블로그문제1. static 변수, 지역 변수class Static{ public int a = 20; static int b = 0;} public class Main{ public static void main(String[] args) { int a; a = 10; Static.b = a; Static st = new Static(); System.out.println(Static.b++); System.out.println(st.b); System.out.println(a); Sy.. 공감수 0 댓글수 3 2024. 10. 11.
  • 스터디) 2024 정처기 실기 2회 프로그래밍 풀기 2024 정처기 실기 2회 정리https://chobopark.tistory.com/483#google_vignette 문제 복원 블로그문제1. 객체class Main { public static void main(String[] args) { int[] a = new int[]{1, 2, 3, 4}; int[] b = new int[]{1, 2, 3, 4}; int[] c = new int[]{1, 2, 3}; check(a, b); check(a, c); check(b, c); } public static void check(int[] a, int[] b) { if (a==b) .. 공감수 3 댓글수 1 2024. 10. 7.
  • 스터디) 2024 정처기 실기 1회 프로그래밍 풀기 2024 정처기 실기 1회 정리https://chobopark.tistory.com/476 문제 복원 블로그문제1. 싱글톤 패턴class Connection { private static Connection _inst = null; private int count = 0; static public Connection get() { if(_inst == null) { _inst = new Connection(); return _inst; } return _inst; } public void count() { count++; } public int getCo.. 공감수 5 댓글수 6 2024. 10. 4.
  • 정처기 스터디(숙제) 문제 출제1 1. 보기에 주어진 주요기능을 가진 프로토콜은?TripleDES, AES 같은 대칭키 암호화 알고리즘 제공연결 설정 과정에서 서버와 클라이언트 간에 신뢰할 수 있도록 인증 사용안전한 해시 알고리즘을 사용하여 메시지 인증코드 생성 정답 : 더보기SSL / TLS 2. 디자인 패턴 중 구조 패턴에 해당 하는 것을 모두 고르시오.ⓐ Proxy     ⓑVisitor    ⓒ Builder    ⓓAdapter    ⓔ State 정답 : 더보기ⓐ, ⓓ 3. 네트워크 보안 솔루션이 아닌 것은?ⓐ VPN     ⓑ IPS    ⓒ NAC    ⓓ DRM    ⓔ UTM 정답 :더보기 ⓓ 4. 통합 테스트 방식에 대한 내용이다. ( ) 괄호에 들어갈 알맞은 모듈을 순서대로 적으시오.하향식 통합 테스트는 하위 모듈에.. 공감수 1 댓글수 1 2024. 9. 23.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.