본문 바로가기

분류 전체보기417

[EasyMarket] 프로젝트 시작, CORS 해결하기 프로젝트 환경 설명 spring boot(html, css, javascript, thymeleaf) 프론트spring boot 백엔드 나는 백엔드 개발자여서 vue, react 같은 프론트 프레임워크를 전혀 모르지만 단순 SSR을 하는 프로젝트 보다는 이렇게라도 CSR을 적용하여 프론트 / 백엔드 통신 과정에 대한 이해와 여러가지 로컬/운영 환경에서의 이슈를 직접 경험하고 싶어 이렇게 구성했다.  로컬 환경에서 프론트 백엔드 통신 테스트 하기 (CORS 문제 해결하기)프론트 설명 -> CORS -> 백엔드 설명 프론트 설명 front: application.yamlspring: profiles: active: local---spring: config: activate: on-pr.. 2025. 3. 26.
[OS] 운영체제 아주 쉬운 세 가지 이야기 2장 운영체제 개요 참고 자료 [책] 운영체제 아주 쉬운 세 가지 이야기 2장 운영체제 개요 프로그램이 실행될 때 어떤 일이 일어날까?명령어를 실행한다.프로세서는 명령어를 초당 수십억 번 반입(fetch)하고, 해석(decode)하고, 실행(execute)한다명령어 작업을 완료한 후 프로세서는 다음 명령어로, 그 다음 명령어로 프로그램이 종료될 때까지 실행을 계속한다  시스템을 사용하기 쉽게하기 위해(easy to use) 프로그램 실행 시 다양한 일들이 발생한다는 것을 배운다. 운영체제(operating system, OS)은 하나의 소프트웨어, 시스템을 사용하면서 편리하고 정확하고 올바르게 동작시킬 책임이 있다.  운영체제는 가상화(virtualization)기법을 사용하여 프로세서, 메모리, 디스크 같은 물리적(phy.. 2025. 3. 22.
[EasyMarket] 트랜잭션, 꼭 서비스에서 시작해야 할까? 애플리케이션에서 데이터베이스 작업은 대부분 트랜잭션 내에서 처리된다.트랜잭션은 데이터의 일관성과 안정성을 보장하는 중요한 메커니즘으로, 이를 적절히 관리하지 않으면 성능 저하나 불필요한 리소스 소모를 초래할 수 있다.특히, 트랜잭션의 시작 지점(entry point)을 잘못 설정하면 커넥션 풀 고갈 문제를 일으킬 수 있으며, 이로 인해 애플리케이션 전체 성능에 부정적인 영향을 미칠 수 있다.따라서 트랜잭션을 적절하게 관리하는 것은 애플리케이션 성능에 매우 중요하다.보통 트랜잭션의 선언은 서비스 계층에서 이루어지며, Spring에서는 @Transactional 애노테이션을 사용하여 트랜잭션을 관리한다.나는 트랜잭션 최적화를 위해 서비스 계층에서 클래스 레벨에 @Transactional(readOnly = .. 2025. 2. 26.
[JAVA] 프로그래머스 LEVEL2 지게차와 크레인 https://school.programmers.co.kr/learn/courses/30/lessons/388353 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr코딩테스트 연습 > 2025 프로그래머스 코드챌린지 1차 예선 > 지게차와 크레인 난이도: LEVEL2알고리즘 유형: 시뮬레이션문제 정리request[i] 길이가 1이면 지게차 길이가 2이면 크레인을 사용  지게차: 컨테이너 4면 중 적어도 1면이 외부와 연결된 컨테이너를 제거 크레인: 요청된 종류의 모든 컨테이너를 제거  request[i] 길이로 지게차, 크레인이 구분되지만 알파벳 종류는 하나, 무조건 대문자이다문제 접근먼저 크레인 로직은 .. 2025. 2. 18.
[JAVA] 프로그래머스 LEVEL2 서버 증설 횟수 https://school.programmers.co.kr/learn/courses/30/lessons/389479 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr코딩테스트 연습 > 2025 프로그래머스 코드챌린지 2차 예선 > 서버 증설 횟수 난이도: LEVEL2알고리즘 유형: 구현?문제 접근 우선순위 큐에 증설된 서버를 넣어준다.우선순위 큐는 int [] 배열을 가진다.int [0] = 서버의 만료 시간 (서버 증설 시간 + k) int [1] = 증설된 서버의 개수 우선순위 큐는 만료 시간이 빠른 순서대로 정렬한다players 배열 (0 ~ 23) for문을 돌면서 증설된 서버가 만료되면 내려주고 .. 2025. 2. 17.
[JAVA] 프로그래머스 LEVEL2 완전범죄 https://school.programmers.co.kr/learn/courses/30/lessons/389480 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr코딩테스트 연습 > 2025 프로그래머스 코드챌린지 2차 예선 > 완전 범죄 난이도: LEVEL2알고리즘 유형: 다이나믹 프로그래밍 - DP 완전 탐색 풀이 import java.util.*;class Solution { static int answer = Integer.MAX_VALUE; static int N,M,size; public int solution(int[][] info, int n, int m) { .. 2025. 2. 17.