목록분류 전체보기 (90)
Post-IT
서비스의 성능을 측정할 때 데이터를 보고 어떻게 판단해야 할까?우리가 알고리즘을 공부하면 시간복잡도의 개념을 공부하게 되는데, 보통의 알고리즘 문제를 풀 때, 우리는는 최악의 시간 복잡도를 고려한다. 어떤 데이터가 들어와도 1초 내지 2초 안에 답을 도출해야하기 때문에 worst case를 고려하게 되는데, 서비스의 성능을 측정하는 관점에서는 어떻게 생각해야 할까? 퍼센타일이란?퍼센타일이란 무엇일까??퍼센타일은 데이털르 작은 값부터 큰 값까지 정렬했을 때, 전체에서 특정 % 지점에 해당하는 값을 의미한다. 지연시간에 대한 데이터가 주어졌을 때, 각각의 정의는 다음과 같다.p50 : 절반의 요청이 이 시간 이하에 완료됨 → 중간값p90 : 90%의 요청이 이 시간 이하에 완료됨 → 상위 10%는 더 느리게..
어떠한 서비스를 만들 때, 정말 많은 데이터를 사용한다. 변동성이 있는 자산에 대한 데이터를 사용하려고 하는데, 데이터를 사용할 때 API와 DB를 활용하는 방식에 대해 생각을 해봤다. 두 방식의 차이점은 무엇이고, 각각의 장단점은 무엇일까? API 호출 방식과 DB 활용을 각각 비교 / 정리해보자 1. API 호출필요한 순간마다 외부 데이터 제공자에 직접 요청해서 응답을 즉시 사용 아마 API 호출로 사용하는 데이터는 가공 없이 최신 데이터를 즉각적으로 사용할 때 유리할 것 같다. 데이터 파이프라인 없이 프론트에서 그대로 가져다 쓸 수 있을 경우에는 되게 유리해 보인다. 하지만, 제공 플랫폼이 불안정하거나, 느리면 서비스 제공에 장애가 생길 수 있다. 또한 내가 만들 서비스에서는 주가 데이터를 받아오는..
컴파일러는 프로그래밍 언어로 작성된 소스 코드를 Machine이 이해할 수 있는 Machine Language(기계어)로 번역해주는 프로그램입니다.컴파일러의 주요 목적은 사람이 이해하기 쉬운 High level language를 CPU가 이해할 수 있는 Low level language로 바꾸는 것입니다.📌 컴파일러의 전체 적인 흐름Source Code (.c, .java 등) ↓[1] Lexical Analysis (어휘 분석) ↓[2] Syntax Analysis (구문 분석, Parsing) ↓[3] Semantic Analysis (의미 분석) ↓[4] Intermediate Code Generation (중간 코드 생성) ↓[5] Optimizati..
스프링 부트 개발을 하다보면 주기적으로 함수를 호출해야될 경우에 @Scheduled 어노테이션을 붙여서 일정시간마다 호출해주는 기능이 필요할 때가 있다. 하지만 분명 1분마다 db의 상태를 업데이트 해야하는 함수가 있어서 추가했는데 함수안에 실행여부 로그를 넣고 돌려보니 어떻게 해도 함수가 실행이 안되서 하루종일 헤맷다. 찾아보니 SpringApplication에서 @EnableScheduling으로 스케줄링을 켜줘야 하는거였다.
Postman으로 API 테스트를 하던 도중에 서버 로그를 좀 보고 싶었는데 아무리 테스트를 해도 서버 로그가 나오질 않아서 테스트가 안된다.로그가 나오지 않는다면 Spring Securtiy에서 요청을 차단하고 있을 가능성이 높다고 한다. application.properties에서 로그를 활성화 시켜줘야 한다.파일 위치 : src/main/resources/apllication.propertieslogging.level.org.springframework.security=DEBUG

스프링 JWT 로그인을 구현하는데 오류한줄없이 코딩하고 빌드를 눌렀는데..!! 빌드가 안된다별거 아니다 그냥 getUserName() getPassword()가 없다고 한다..😂 근데 거의 모든 get함수들이 안되는거 같은 느낌이 들었다.그래서 내가 @Getter 어노테이션을 빼먹은 줄 알았다. 근데 Line 6에 뻔히 있다.. 이유가 뭔지 열심히 찾아보니 lombok 의존성을 추가하는거 말고도 Annotation Processor가 필요한 것이였다. 코드 작성시에는 에러가 없는데 컴파일 타임에 내가 작성한 @Getter 어노테이션이 일을 안하고 있던것이였다!!!이 어노테이션이 놀지 않고 자기 할일을 하게 해주는 것이 바로 Annotation Processor! Lombok 의존성을 추가할 때는 반드시..

리액트 개발환경을 세팅하다가 1시간 넘게 해결을 못한 문제가 있다..Tailwind 패키지를 설치하고npx tailwindcss init -p 설정파일을 생성하려고 하는데 자꾸 tailwindcss가 없다고 한다..zsh: command not found: tailwindcss분명 설치되어있는데.. 혹시나 npm이 깨졌나 캐시도 삭제해보고 재설치도 해봤는데 무슨 짓을 해도 안된다..!!! 😡 결국 구글링 해보니 그냥 Tailwind CLI가 없어서 그런거였다! $ npm install @tailwindcss/cli 바로 CLI를 설치하니 정상적으로 설정파일이 생성되었다!

1. 문제 분석 DP는 자주 풀어도 정말 어려운것 같다.. 전에 풀었던 오름차순 부분수열과 꽤 유사한데 이 문제는 그 수열또한 출력해야 한다. 시간복잡도 : O(N^2) 알고리즘 : DP2. 문제 풀이수열의 길이를 1씩 늘려가며 dp에 LCS의 길이를 저장하면서 진행한다.i번째와 j번째가 같을 때 : dp[i][j] = dp[i-1][j-1] + 1다를 때 : dp[i][j] = Math.max(dp[i-1][j], dp[i][j-1]) 3. 코드 구현import java.io.IOException;import java.util.Scanner;public class BOJ_9252 { public static void main(String[] args) throws IOException { ..
개발하면서 제일 귀찮은게 개발환경 세팅...이다. 늘 할때마다 귀찮고.. 그래서 도커를 쓰면 되게 편하다고 들었는데 이번에 공부해보자. 1. 백엔드 Spring Boot 개발환경 설정 우리가 필요한 주요 기술을 포함해서 프로젝트를 생성하려고 한다. 프로젝트는 Spring Initializer에서 세팅했다. 1. Spring Boot 프로젝트 생성Spring Initializr 접속(https://start.spring.io)설정값 입력Project : GradleLanguage : JavaSpring Boot Version : 3.4.3Group : com.auctionArtifact : auction-platformPackaging : JarJava : 17의존성 추가Spring Web (REST AP..
뭔가 이거저거 해본건 많은데 결과물이다 라고 보여줄만한 프로젝트도 없고, 공부했던 내용을 다시 점검해보며 만들어볼 프로젝트를 생각하다가 웹 경매 플랫폼이라는 주제로 프로젝트를 최대한 단기간에 부셔볼 생각이다. 타임어택에 도전 해보려고한다. 이번 일지에는 기본적인 구상을 브레인 스토밍한 내용을 정리해 보려고 한다. 학습 목표는 백엔드 설계 및 구현 + 리액트 를 목표로 두고 있다. 기본적인 설계는 다음과 같고, 약간의 변동사항은 생길 수 있다.1. 프로젝트 개요 1.1. 프로젝트 목표• 실시간 경매 시스템을 구축하여, 사용자가 포인트를 충전하고 경매에 참여할 수 있도록 함.• WebSocket을 활용한 실시간 입찰 기능을 제공하여 원활한 경매 진행을 지원.• 포인트 기반 결제 시스템을 적용하여, 별도의 외..