전체 글 69

[Redis] Redis 서버 실행 및 명령어

🥸 들어가기 Redis 서버 실행 및 명령어들을 사용하게 되는데, 가끔 까먹는 것도 있어서 정리해본다. 🥸 Redis 서버 실행하기 로컬에서 Redis 서버 실행하기 (redis-server가 없다면, 설치 후 실행하세요!) redis-server 🥸 Redis client 접속 및 명령어 Redis client 접속 redis-cli -h 127.0.0.1 -p 6379 모든 key값 조회 실제 운영 환경에서는 조심해서 사용해야한다. (사용하지 않는 것을 권장) keys 값 저장 set ga 123 값 조회 get ga

CS/DB 2023.07.09

iTerm2 MAC 터미널 커스텀

MacBook 터미널 커스텀 포스팅을 드디어 하네요! 한번 셋팅하면 끝! 이다보니.. 안하다가 이번에 터미널 셋팅을 해야해서 겸사겸사 포스팅도 같이 해봅니다! 🐹 iTerm2 설치 1) iterm2 홈페이지에서 다운로드 링크 : https://iterm2.com/ 2) 위에서 다운받은 iTerm2를 열고, 아래의 명령어 실행 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 3) zsh 설치 brew install zsh 🐹 Oh-my-zhs 설치 홈페이지 : https://github.com/ohmyzsh/ohmyzsh/wiki/Themes#cloud Themes 🙃 A deligh..

카테고리 없음 2023.05.23

[네트워크] HTTP/1.1 와 HTTP/2 의 차이점

👩‍💻 HTTP란? Hypertext Transfer Protocol 의 약자로, HTML 등의 문서를 주고 받는 프로토콜이다. WEB에서 이루어지는 모든 데이터 전송 및 응답의 기본이라고 생각하면 된다. 추가) OSI계층의 Application Layer 프로토콜 👩‍💻 HTTP/1.0 ✔ 단기 커넥션 하나의 데이터를 전송하기 위해서 하나의 TCP Connection을 맺어야 한다. TCP는 신뢰성 있는 데이터 전송을 위해 연결 시 3-way handshake, 연결 해제 시 4-way handshake 과정을 거치며 결국, 여러 API 호출 시 Latency 증가 는 너무 당연한 얘기다. 너무 비효율이여서 HTTP Header 에 Keep-alive 옵션을 사용하여 일정 시간동안 Connection을..

CS/Network 2023.04.22

[Spring boot] intellij error 프로젝트 셋팅 중 에러

개발하다보면 프로젝트 셋팅 또는 버전업을 할 때가 있는데, 실행도 전에 에러가 두둥!! 나오는 경우가 많죠? 이럴 때 마다 저는 에러를 열심히 읽고 구글 서치도 하면서 해결을 해나가는데요. 앞으로도 계속 볼 일이 있을 것 같아서 에러 메세지와 해결 방법을 공유하려고 합니다. ( 저 뿐만 아니라 다른 분들도 도움이 되겠죠? ㅎㅎ) 그럼 바로 시작해볼게요~~ 🤕 에러 메세지 java: static import only from classes and interfaces intellij java package org.mockito does not exist 등등.. 😉 해결 방법 .idea 파일 삭제 후 project restart 하기 🤕 에러 메세지 Execution failed for task ':comp..

SERVER/Spring Boot 2023.03.20

[Spring Boot] JMH - Benchmark Test 사용하여 성능 측정하기

🔵 JMH(Java MicroBenchmark Harness) 란? Open JDK에서 개발한 성능 측정 툴 특정 메소드의 성능을 측정하는 방식으로 사용 🔵 JMH 는 언제 사용할 수 있을까? 성능 튜닝을 할 때, 메소드의 성능을 측정하여 간단한 테스트를 진행할 수 있다. 여러가지 조건 및 부하를 주고 테스트를 할 수 있지만, JMH를 통해서는 메소드의 성능 튜닝을 로컬에서 간단하게 실행해보고 진행해볼 수 있다는 점이 좋다. 🔵 JMH 사용하여 메소드의 성능 측정하기 1) pom.xml 에 jmh-core 와 jmh-generator-annprocess 라이브러리를 추가 pom.xml org.openjdk.jmh jmh-core 1.26 org.openjdk.jmh jmh-generator-annproc..

SERVER/Spring Boot 2023.02.15

[Network] 네트워크 기초 3 : 네트워크 계층

🖥 OSI 3계층 : 네트워크 계층 📍 네트워크 계층의 역할과 기능에 대해서 알아본다. 📍 네트워크 계층에서 데이터를 어떻게 전달하는지 알아보자. 🖥 목차 📍 네트워크란? 📍 용어 정리 🖥 네트워크란? (feat. 네트워크 계층의 역할) 우리는 다양한 사람들과의 네트워크를 맺고 있는데, 컴퓨터도 동일하다고 보면 된다. (사람 = 컴퓨터) 실제로는 위의 그림보다 수많은 네트워크가 존재할 것이고, 네트워크 A의 컴퓨터에서 네트워크 B의 컴퓨터로 데이터를 전송한다고 해보자. 연결되어있는 여러 네트워크들을 타고 가야할 것이다. 데이터가 이동할 수 있는 루트는 몇 개가 있을까? 수백 수천가지 아니 수억만 가지일 것이다. 네트워크 계층은 다른 네트워트 상의 있는 컴퓨터들의 데이터를 여러가지 루트 중 최적의 루트를 ..

CS/Network 2023.02.03

[SERVER] HTTP헤더 > content-type

👩‍💻 HTTP 헤더 HTTP 헤더는 클라이언트와 서버가 서로 요청/응답을 줄 때, API 요청값 또는 응답값 외의 부가적인 정보를 전송할 수 있도록 해주는 역할을 한다. header에는 보통 authorization(인증토큰), 쿠키, 클라이언트의 하드웨어 정보 등이 담겨있다. (이런 정보들을 통해 로그/오류 추적 등을 할 수 있다.) 🔎 CURL API 전문 (Request Header 확인 가능) -H 는 Request Header를 의미한다. 형태는 "이름" ":" "값" 으로 되어있다. curl 'https://cologger.shopping.naver.com//api/v1/collect/PLUS_DEAL/001051?adCntsSeqs=5899458&adCntsSeqs=5899725&adCnt..

SERVER 2023.01.26

[Network] 네트워크 기초 2 : 데이터 링크 계층

🖥 OSI 2계층 : 데이터링크 계층 📍 데이터 링크 계층의 역할과 기능에 대해서 알아본다. 📍 데이터 링크 계층에서 나오는 기본적인 용어에 대해 정리한다. 🖥 들어가기 📍 데이터 링크 계층은 LAN에서 데이터를 정상적으로 주고받기 위해 필요한 계층 📍 용어 정리 🖥 데이터링크 계층의 역할 네트워크 장비 간에 신호를 주고받는 규칙을 정한다. 일반적으로 많이 사용하는 규칙을 "이더넷"이라고 한다. 🖥 CSMA/CD Q. 데이터를 주고 받으려면 어떤 규칙이 필요할까? 우리가 대화할 때를 생각해보자. 친구들과 동시에 말을 하면 대화가 되지 않을 뿐더러 말도 전달되지 않는다. 한 사람이 먼저 이야기하면 다른 사람은 기다렸다가 말을 해야하고, 데이터 전송도 마찬가지이다. 여러 대의 컴퓨터가 데이터를 동시에 전송하..

CS/Network 2023.01.19

[Spring Boot] REDIS PUB/SUB 구현

📍 기능 정의 message pub/sub 기능으로 누군가 메세지를 보내게 되면 특정 채널에 구독하고 있는 대상에게 메세지가 전송되는 구조 redis pub/sub 구조 https://gh402.tistory.com/69 [REDIS] REDIS PUB/SUB 구조 ⭐ REDIS PUB/SUB 기능 소개 Redis는 캐싱 역할 뿐만 아니라 message pub/sub 기능도 가지고 있다. 간단한 채팅을 구현하거나, 하나의 특정 메세지를 여러 사람이 받아야할 때 사용한다. ( 아래의 그림 참고 gh402.tistory.com 🍭 레디스 자바 클라이언트 lettuce Jedis Redisson spring boot 2.0 이상 부터 spring-boot-starter-data-redis 에 기본 클라이언트는..

SERVER/Spring Boot 2023.01.16

[REDIS] REDIS PUB/SUB 구조

⭐ REDIS PUB/SUB 기능 소개 Redis는 캐싱 역할 뿐만 아니라 message pub/sub 기능도 가지고 있다. 간단한 채팅을 구현하거나, 하나의 특정 메세지를 여러 사람이 받아야할 때 사용한다. ( 아래의 그림 참고 ) 누군가 메세지를 보내게 되면 특정 채널에 구독하고 있는 대상에게 메세지가 전송되는 구조이다. 🌱 publisher/subsciber 클라이언트는 다른 채널에 구독 또는 구독 취소가 가능하지만, 명령을 실행할 수 없다. 구독 및 구독 취소 작업에 대한 응답은 메세지 형식으로 전송된다. [참고] subscibe한 클라이언트의 컨텍스트에서 허용되는 명령 SUBSCRIBE, SSUBSCRIBE, SUNSUBSCRIBE, PSUBSCRIBE, UNSUBSCRIBE, PING, RES..

CS/DB 2023.01.08