[Git] 원격 저장소와 로컬 저장소 병합 문제 해결 : non-fast-forward
·
Etc
문제 상황GitHub에서 저장소를 생성한 후, 저장소 주소를 원격(remote)에 추가(git remote add origin https://github…..)하고, 로컬에서도 정상적으로 초기화(git init)했습니다. 그런데 git pull 또는 git merge 명령어가 정상적으로 동작하지 않았고, git push origin main 명령을 실행할 때 아래와 같은 에러가 발생했습니다.[rejected] main -> main (non-fast-forward)error: 레퍼런스를 'git@github.com:'에 푸시하는데 실패했습니다힌트: 현재 브랜치의 끝이 리모트 브랜치보다 뒤에 있으므로 업데이트가힌트: 거부되었습니다. 푸시하기 전에 ('git pull ...' 등 명령으로) 리모..
코틀린(Kotlin)의 핵심 문법과 예제 (1/2)
·
Programming Language
들어가면서코딩테스트, 스프링 백엔드 개발에서 자바로 프로그래밍을 해왔다.최근 채용 공고를 보면 `스프링 + 코틀린 (코프링)`이 심심치 않게 보인다. 자바에서 현대적인 언어로 업그레이드된 언어가 코틀린이라고한다.따라서 코틀린의 문법을 배우고 더 나아가 간단한 API를 코틀린으로 만들어보는 실습까지 할 계획이다.다행인 점은 자바를 사용해 오던 개발자라면 코틀린 사용이 더 수월할 것이다.    코틀린 파일 생성인텔리제이에서 Kotlin 파일 또는 클래스를 생성하는 방법은 Java 클래스를 생성하는 방법과 유사하다.Kotlin은 클래스가 필수적이지 않기 때문에, 단순히 파일로 생성할 수 있다. 나는 "Main"이라는 이름으로 Kotlin 파일을 만들었다.    변수fun main() { var i = 1..
카프카(Kafka) 서버를 구축해보자
·
Server
들어가면서대규모 트래픽 상황에서도 안정적이고 높은 TPS(초당 트랜잭션 수)를 유지하는 서버를 구축하고자 하는 것은 많은 엔지니어의 목표입니다. 저 역시 위대한 엔지니어들이 그러했듯, 현재의 상태에 안주하지 않고 개선을 추구하고 있습니다.특히, 대용량 데이터를 효율적으로 처리하기 위한 목표를 위해 Kafka 서버를 도입하려고 합니다. 이 포스팅에서는 `Kafka 서버 구축 과정을 단계별로` 설명하며, 스프링 같은 백엔드 서버와 연결하지 않습니다. Kafka를 직접 작동시켜보며, 그 원리와 구조를 파악하는 것이 목표입니다. 카프카(Kafka) 란? Apache Kafka는 고성능 데이터 파이프라인, 스트리밍 분석, 데이터 통합 및 미션 크리티컬 애플리케이션을 위한 오픈 소스 분산 이벤트 스트리밍 플랫..
효율적인 Docker 빌드: 캐시를 활용한 속도 개선
·
Web
들어가며스프링 프로젝트에 Docker를 세팅했는데, Docker 도 최적화가 가능할까?라는 생각에 검색하던 중Docker Cache를 발견하게 되었습니다.  Docker를 이용한 스프링 서버의 빌드 속도 최적화 과정스프링 서버 Docker로 세팅: 스프링 서버를 Docker 컨테이너로 설정합니다.Dockerfile 작성: Dockerfile을 작성하고, 각자의 요구에 맞게 수정합니다.캐시 사용 Dockerfile: Docker 캐시가 작동하도록 Dockerfile을 최적화합니다.최적화된 Docker 빌드: 최적화된 Dockerfile을 사용하여 빌드 과정을 빠르게 수행합니다.    Docker LayerDocker Cache를 이해하기 전에 먼저 `Docker의 Layer`에 대해 먼저 알아야 합니다. ..
Spring 서버에서 로그아웃할 때 토큰을 Blacklist Token 테이블에 추가한다면.
·
Spring
들어가면서 이 글에서는 Spring Security의 JWT 방식(이하 `기본 JWT 방식`)이 아닌 Jwt와 인증 테이블(DB)을 사용해서 인증과 인가를 구현할 때의 고민과 로그아웃을 구현한 방법을 기록한다. Jwt를 통한 인증과 인가에 대한 배경지식이 있어야 이해가 수월할 것이다. 기본 JWT 방식의 특성과 한계 기본 JWT 방식은 토큰 발급 후 `서버에 사용자 정보나 만료 시간을 저장하지 않아` 무상태(stateless)로 동작한다. 이로 인해 로그아웃이나 보안 이슈 발생 시, 서버에서 토큰을 세밀하게 관리하기 어렵다. Refresh Token을 서버에 저장하지 않기 때문에, Access Token 만료 시 자동 재발급 기능 구현이 힘들 것이다. Access Token의 만료 기간을 짧..