분류 전체보기 86

[프로젝트] 스택오버플로우 에러 해결 (부제: 드디어 내게도 말로만 듣던 이 에러가)

✏️문제두둥 ..  인스타그램처럼 내 피드에 들어가면 내가 쓴 글만 모아서 볼 수 있게 하는 '내가 쓴 글 보기' API를 만들다가 스택오버플로우 에러가 났다.처음엔 빨간 ERROR 저 글자 보자마자 어디서 잘못됐지 ..? 착잡하다가,, StackOverflowError 저 글자를 보고 갑자기 오 !!! ㅋㅋㅋㅋ말로만 듣던 스택오버플로우다 !!! 실제로 본 건 처음이라 반가움 + 좋음 콤보에 인증샷 부터 박았다.이번 기회에 처음 접해본 스택오버플로우 에러를 디버깅해보자. 일단 제일 처음에 알아본건 그래서 스택오버플로우가 정확히 뭐랬더라? StackOverflow 란?지정한 스택 메모리 사이즈보다 더 많은 스택 메모리를 사용하게 되어 에러가 발생하는 상황을 일컫는다.  스택오버플로우가 발생하는 대표적인 사..

Project/Newsfeed 2024.04.13

[프로젝트] AOP로 'API 수행 시간/회원 별 총 API 사용시간 누적 저장' 기능 다르게 구현하기와 그에 따른 고민

내가 구현하고 싶은/구현해야 할 기능은 두 가지가 있었다. 회원 별 API 사용 시간 측정(저장) 기능과 API 수행시간 측정 기능이다. 이 기능들은 '핵심기능' 이라기 보단 '부가기능'에 가까웠으므로, 모듈화해서 부가기능 중심으로 설계, 구현하는게 맞다고 본 것이 AOP를 사용한 결정적 이유겠다. 두 가지 기능의 성격이 살짝 달라서 고민 후에 한 개는 @Pointcut으로 조인포인트를 설정해서 구현하고, 한 개는 애너테이션을 직접 만들어서 구현했다. 본 포스팅에서는 각 기능을 구현한 방법과 왜 이렇게 구현했는지에 대한 고민, 이후 고려해야 할 점들 등에 대해서 기술했다. 목차 - 회원 별 총 API 사용시간 누적 저장 구현 구현 과정 - API 수행 시간 측정 구현 구현 전 고민 구현 과정 -고려한 점..

Project/Newsfeed 2024.04.10

[삽질] 자꾸 CLI 명령어 까먹어서 이제 안 까먹으려고 쓰는 "Port 8080 was already in use" 에러 해결 방법

요 에러는 예전 스프링 framework로 톰캣 삽입해서 쓸 때부터 왕왕 봤던 에러다.가끔 로컬에서 애플리케이션 실행시키면 시작부터 이렇게 error가 뜨는 경우가 있다. 이 에러는 왜 나나요?에러 메시지 그대로 포트가 이미 사용중인 포트이기 때문이다. 발생 원인으로는 동일한 포트를 사용하는 어플리케이션을 번갈아가며 실행 시킨 경우 (이미 다른 하나가 실행중)IDE 상에서는 프로세스가 종료되었으나 실제 프로세스는 종료 안 된 경우등이 있다고 한다.   해결 방법 실행 하고자 하는 어플리케이션의 실행 포트를 바꾼다.현재 포트를 사용하고 있는 프로세스를 종료한다.필자는 명령 프롬프트를 통한 두 번째 방법을 선호한다. (필자의 환경은 Windows이다. Mac 과는 방법이 다르니 주의) cmd 창을 열고 아래..

General/debugging 2024.04.10

[TIL][CS] 운영체제(OS) 톺아보기

오늘 CS 스터디 주제는 '기초탄탄한 개발자가 되자!!' 운동의 일종으로 .. 기본 중 기본인 운영체제에 대해 알아보도록 하겠다! 📌운영체제란?운영체제(OS, Operating System)란 사용자가 컴퓨터를 쉽게 다루게 해 주는 인터페이스이다. 한정된 메모리나 시스템 자원을 효율적으로 분배해주는 야무진 녀석⭐이라고 생각하면 된다!  📌운영체제의 역할위에서, 운영체제는 한정된 메모리나 시스템 자원을 효율적으로 분배해준다고 했다. 그래서 '어떻게' 효율적으로 분배한다는 건지, 운영체제의 역할을 통해 알아보자. 운영체제의 역할은 크게 네 가지가 있다.CPU 스케쥴링과 프로세스 관리CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 어떤 프로세스가 CPU를 점유하고..

Computer Science 2024.04.09

[TIL][CS] TCP/UDP와 동작 과정, TCP 3way handshake

오늘은 매일 잘 모르니까 해야지 해야지 하면서 다른 공부에 밀렸던 TCP, UDP와 3way handshake에 대해서 공부했다!! 먼저 본론으로 들어가기 전에, TCP/UDP는 왜 알아야 할까. 잠시 생각해 보고 스크롤을 밑으로 내려보자. 왜 알아야 하나요 🤔 TCP/UDP는 웹 애플리케이션의 신뢰성, 성능 개선을 하는 중요한 역할을 하기 때문이다. 데이터의 소실 방지, 순서 보장 ex) 데이터베이스 서버와 통신을 할 때 저장하려고 하는 데이터가 소실되거나, 혹은 순서가 뒤바뀌어버린다면? 낭패 ! HTTP3.0에서 도입된 *QUIC(Quick UDP Internet Connections)의 도입 배경 이해 => 이러한 상황을 이해하기 위해서 TCP/UDP를 알고 있어야 한다. *QUIC = = TCP ..

Computer Science 2024.04.04

[TIL][CS] 트랜잭션과 ACID, 트랜잭션의 고립 수준

오늘 스터디 주제는 '트랜잭션'! 트랜잭션에 대해 기본적인 개념만 알고 있었는데, 오늘을 기회로 트랜잭션의 기본부터 고립 수준까지 공부를 해봤다. 더불어 내가 이해한 것을 현업에 가까운 예시를 들면서 포스팅 해보고자 한다. 먼저 기본적으로 모두들 잘 알고있는 트랜잭션의 개념과 특성에 대해 간단히 알아보자. 📌 트랜잭션이란? 트랜잭션이란, 데이터베이스에서 수행되는 여러 작업을 하나의 논리적 단위로 수행하는 것을 말한다. 속된말로 곧 죽어도 같이 묶여서 수행되어야 하는 연산을 묶은 것이라고 생각하면 되겠다 ㅎㅎ 트랜잭션의 연산 하나로 묶은 연산을 수행하며 오류 없이 모든 작업이 성공적으로 마쳐야만 DB에 반영하게 되는데, 이것을 트랜잭션 연산에서는 '커밋' (COMMIT)이라고 한다. 하지만 중간에 하나에서..

Computer Science 2024.04.02

[TIL][Test] TDD 파헤쳐보기 (개념, 장/단점, 흐름)

테스트 코드를 본격적으로 쓰기 전에 테스트의 종류와 필요성에 대해 정리했던 시간을 가졌었다. 2024.03.22 - [Framework/Spring] - [TIL][Spring] 단위 테스트/통합 테스트/인수 테스트, 테스트 코드의 필요성 [TIL][Spring] 단위 테스트/통합 테스트/인수 테스트, 테스트 코드의 필요성 테스트 코드를 프로젝트에 적용하기에 앞서, 테스트에 대해 공부하고 회고해보는 시간을 가지고 포스팅한다. 사실 여태 테스트 코드를 작성하지 않고 Postman 으로만 API 기능 테스트를 진행해왔 developer-jinnie.tistory.com 오늘 포스팅에선 TDD (테스트 주도 개발)가 뭔지 그 개념을 자세히 공부해보도록 하자!! 📌 TDD란? (Test-Driven-Develo..

Framework/Spring 2024.04.01

[TIL][Algorithm] 다익스트라 알고리즘과 그 구현

오늘의 스터디 주제는 알고리즘, 그 중에서도 다익스트라 알고리즘에 대해 자세히 소개하고 싶어 포스팅해본다. 처음 알고리즘을 배울 때 정렬이나 BFS, DFS같은 알고리즘들은 한 번 배우고 아, 이런 식으로 풀면 되겠구나! 가 대충 감이 왔는데, 다익스트라의 경우 감이 잘 안잡혀서 당황했던 기억이 있다. 나와 스터디원들의 감을 다시 잡아보기 위해 포스팅 야무지게 써보겠다 !!! 📌 최단 경로 (shortest path) 우선, 다익스트라 알고리즘과 함께 딸려오는 키워드가 '최단 경로'이다. 알고리즘 문제를 풀 때, 'A에서 B로 가는 최소 비용이 얼마인가?' 이런 유형을 왕왕 본 적이 있을 것이다. 보통은 이런 공간적인 문제를 그래프로 표현하고, 각 지점은 노드, 도로는 간선으로 표현이 된다. 일반적으로 ..

Algorithm 2024.03.29