| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 도커
- AWS
- 스프링예외처리
- 인텔리제이
- 스파르타코딩클럽
- 내일배움캠프
- 소셜로그인
- 스프링
- JWT
- cloudtype
- 백준
- 키오스크
- 그라파나
- 알고리즘
- 테스트코드
- 배포
- 연동
- supabase
- mysqlworkbench
- java
- 잔디심기챌린지
- 깃허브
- 프로메테우스
- 스프링시큐리티
- gradle
- tomcat
- EC2
- 스프링부트
- 자바
- o'auth2
- Today
- Total
목록전체 글 (122)
개발스토리지😃
깃허브를 꾸미다 보니 gist라는 기능을 알게 되어적용방법을 정리해보았다 1. Github Gist란?짧은 코드 조각, 메모, 또는 간단한 텍스트 파일을 공유하기 위한 서비스별도의 저장소(Repository)를 만들지 않고도 파일 하나만 뚝딱 생성할 수 있는 것이 특징2. Gist 생성Gist에 접속아래의 번호 순서대로 Gist 생성 게시글 경로 url을 복사 3. Github 환경변수 등록GH_TOKEN 발급프로필 클릭 -> settings Developer settings 클릭 Personal access tokens -> Token(classic) 클릭 -> Generate new token을 클릭하여 발급 자신의 레포지토리로 돌아와 아래의 이미지대로 환경변수 값을 ..
취업을 준비하기에 앞서 깃허브의 README를 꾸며보았다쓸데없이 애니메이션만 적용했는데 재밌다..😆 1. 들어가며내 잔디 위에서 팩맨이 돌아다니고, 스네이크가 먹이를 먹는 재미있는 애니메이션을 GitHub 프로필에 적용하는 방법을 소개참고 사이트https://profile-readme-generator.com/ Profile Readme GeneratorBeautify your github profile with this amazing tool, creating the readme your way in a simple and fast way! The best profile readme generator you will find!profile-readme-generator.comhttps://www.gi..
MSA로 개발을 하다가 인텔리제이가 멈춰 강제종료하였다. 다시 실행하려고 하니 총 12개의 서버의 포트가 충돌이 나서 쉘스크립트를 만들어 보았다. 1. kill_duplicate_servers.sh 작성띄어쓰기는 _를 사용servers=(:)의 내용을 자신의 상황에 맞게 수정#!/bin/bash# ===========================# 서버 포트 점검 및 종료 스크립트 (Bash 3.x 호환)# ===========================# 서버명과 포트를 "서버명:포트" 형태로 배열에 저장servers=( "AI_Server:20010" "Company_Server:20020" "Delivery_Server:20030" "Hub_Server:20040" "Hub_Route_..
API 명세서를 작성하다가 PUT, PATCH, POST을 어떻게 사용해야 할지 혼란스러웠다. 멱등성이 있으면 PUT, 없으면 PATCH라는 원칙도 배우지만 그 기준만으로는 혼란을 해결하지 못했다.그래서 설계원칙을 정리해보았다. 1. RESTful API 설계의 기본 원칙REST 설계의 핵심은 리소스(Resource) 중심이기에URL에는 명사(thing)만 들어가야 하고, 행동(action)은 HTTP 메서드로 표현"무엇을 조작할 것인가"를 URL로"어떻게 조작할 것인가"를 HTTP 메서드로 구분 구분예시설명✅ 좋은 예GET /products/1상품 1번 조회🚫 나쁜 예GET /getProductById/1행동이 URL에 들어감 2. PUT vs PATCH vs POST의 개념 비교 메서드..
요구사항 중에 if-else문을 사용하지 말라는 문구를 보았다단순히 “코드가 더러워진다” 정도로만 생각했는데테스트 복잡도와 유지보수성 측면에서 중요한 이유가 있었다. 1. 문제 코드 — if-else가 많은 코드아래는 로또문제를 예로 가지고 왔다.번호 6개를 맞추면 1등, 5개를 맞추고 보너스 번호를 맞추면 2등이다.public String getRank(int match, boolean bonus) { if (match == 6) { return "1등"; } else if (match == 5) { if (bonus) { return "2등"; } else { return "3등"; } } el..
Spring Cloud를 사용해서 MSA 기반 서버를 구성하면서,모놀리식과는 다른 Gradle 프로젝트 구조와 빌드 관리 방식에서 헷갈리는 부분이 많았다.하나의 루트 폴더에서 여러 개의 서비스 모듈을 관리하는 방법과그 과정에서 겪은 시행착오를 정리해본다. 1. MSA 프로젝트 구조 개요MSA 프로젝트를 구성할 때, 각 서비스(eureka, gateway, user, order 등)는 각각 독립적으로 실행 가능한 Spring Boot 애플리케이션이 된다.예시Cupeed/ ├── com.sparta.cupeed.config/ ├── com.sparta.cupeed.eureka/ ├── com.sparta.cupeed.gateway/ ├── com.sparta.cupeed.user/ ├── com.sparta..
스프링으로 개발을 하다보면 application.properties란 파일을 만난다.완성 후 깃허브에 코드를 올리고 나중에 확인해보면 주석이 모두 ??로 바뀌어 있다. 1. 인코딩인코딩(Encoding)은 “문자”를 “숫자(바이트)”로 바꾸는 규칙이다.https://start.spring.io/에서 프로젝트를 만든 후에 src/main/resources/application.properties를 IntelliJ로 열어보면 아래의 인토딩정보가 나온다. 기본값은 ISO-8859-1이다 UTF-8 = 국제 표준ISO-8859-1 = 구시대 유럽 문자 인코딩인코딩특징UTF-8전 세계 문자 지원, ASCII 호환, 웹 표준UTF-162~4바이트로 문자 표현, Windows 시스템 친화적US-ASCII영어만 표현 ..
TDD개발방법론을 공부하다보니두가지의 접근법을 알게되어 정리해보았다.결론부터 말하면 무엇이 더 좋은 것은 없고 상황에 따라 모두 정답이다. 1. 들어가며“TDD는 테스트 먼저 짜는 거” 정도로만 알고 있었다.테스트를 먼저 짜는게 익숙하지 않았기에코드를 구현하기 시작하면 User객체를 만들고 나서테스트를 작성하여 확인하며 진행했었다.package com.example.tdd.domain;public class User { private final String username; private int age; public User(String username, int age) { if (username == null || username.isBlank()) { ..
프로젝트를 진행하다보면 가장 먼저 떠오르는 고민이 "패키지 구조를 어떻게 가져갈 것인가?"이다.그래서 여러가지 패키지구조를 비교해보았다. 0. 참고자료기본적으로 아래의 사이트를 참고하여 작성하였다.https://medium.com/sahibinden-technology/package-by-layer-vs-package-by-feature-7e89cde2ae3a Package by Layer vs Package by FeatureWhich one should we use? And why?medium.com 1. Layered Architecture소프트웨어를 역할(role) 기반으로 나눈 전통적인 구조“서비스는 비즈니스 로직만 담당해야 하고, 데이터 접근은 리포지토리가 담당해야 해” 라는 설계 원칙Pres..
코드를 작성하다가 주석이 많아지다보니 코드를 설명한 주석과구현하거나 고쳐야할 주석을 구분하기가 어려워져 작성하게 되었다. 1. 주석 예시IntelliJ 공식 문서는 기본기능과 커스텀 주석을 만드는 방법만 나와있다.https://www.jetbrains.com/help/idea/using-todo.html TODO comments | IntelliJ IDEA www.jetbrains.com 기본 기능은 TODO와 FIXME가 있고 View -> Tool Windows -> TODO를 클릭하면 확인할 수 있다 하지만 주로 쓰이는 주석은 다음과 같다고 GPT에 검색했다.태그의미예시NOTE참고용 메모// NOTE: DB 커넥션은 풀링 중REVIEW리뷰 필요// REVIEW: 이 로직 복잡도 높음OPTIMIZE..