분류 전체보기 461

[Linux] free - 메모리 사용량 확인하기

해당 포스팅은 인프런 "리눅스 성능 분석 시작하기" 를 수강하고 정리한 글입니다 :) 리눅스 기반 os 에서 돌아가는 서버 시스템의 성능 측정 및 장애 대응에 대한 학습 내용 정리 글 입니다. 💡 리눅스 성능 분석의 기본 명령어 명령어 역할 uptime 시스템 가동 시간, Load Average 확인 dmesg 커널 메세지 확인 (OOME 발생 여부, SYN Flooding 여부) free 메모리 사용 현황 확인 df 디스크 여유 공간 및 inode 공간 확인 top 프로세스들의 상태, CPU 사용률, 메모리 사용률 확인 netstat 네트워크 연결 정보 확인 tcpdump 네트워크 트러블 슈팅 분석을 위한 패킷 수집 명령어 ✅ free 명령어 현재 사용중인 메모리 사용양과, 사용가능한 메모리양 등 전반..

운영체제/Linux 2023.08.24

[Linux] dmesg - 리눅스 커널 로그 메세지 확인하기 (OOME, SYN Flooding)

해당 포스팅은 인프런 "리눅스 성능 분석 시작하기" 를 수강하고 정리한 글입니다 :) 리눅스 기반 os 에서 돌아가는 서버 시스템의 성능 측정 및 장애 대응에 대한 학습 내용 정리 글 입니다. 💡 리눅스 성능 분석의 기본 명령어 명령어 역할 uptime 시스템 가동 시간, Load Average 확인 dmesg 커널 메세지 확인 (OOME 발생 여부, SYN Flooding 여부) free 메모리 사용 현황 확인 df 디스크 여유 공간 및 inode 공간 확인 top 프로세스들의 상태, CPU 사용률, 메모리 사용률 확인 netstat 네트워크 연결 정보 확인 tcpdump 네트워크 트러블 슈팅 분석을 위한 패킷 수집 명령어 ✅ dmesg 명령어 dmesg는 커널에서 발생하는 다양한 메시지들을 출력하는 ..

운영체제/Linux 2023.08.23

[Linux] uptime - 서버가 받고있는 부하 평균 측정 및 대응하기

해당 포스팅은 인프런 "리눅스 성능 분석 시작하기" 를 수강하고 정리한 글입니다 :) 리눅스 기반 os 에서 돌아가는 서버 시스템의 성능 측정 및 장애 대응에 대한 학습 내용 정리 글 입니다. 💡 리눅스 성능 분석의 기본 명령어 명령어 역할 uptime 시스템 가동 시간, Load Average 확인 dmesg 커널 메세지 확인 (OOME 발생 여부, SYN Flooding 여부) free 메모리 사용 현황 확인 df 디스크 여유 공간 및 inode 공간 확인 top 프로세스들의 상태, CPU 사용률, 메모리 사용률 확인 netstat 네트워크 연결 정보 확인 tcpdump 네트워크 트러블 슈팅 분석을 위한 패킷 수집 명령어 업타임은 동작 중이면서 사용 가능한 기계의 시간을 백분율로 나타낸 시스템의 신뢰..

운영체제/Linux 2023.08.22

넥스트스텝 ATDD with Spring 수료 회고

으아아아아아 수료했다아아아아🔥🔥🔥🎉🥳 약 2달전에 NEXTSTEP 에서 진행하는 "ATDD, 클린 코드 with Spring 7기" 라는 교육을 수강했다! (https://edu.nextstep.camp/) 1달 반정도 같이있었던 첫 개발 사회생활의, 첫 번째 사수님이 수강하셨고 추천해주셨던 강의인데,, 그때 당시 "단위 테스트도 잘 못하는데 무슨 인수테스트냐;;" 라는 생각에 꼭 나중에 들어봐야지 다짐하고 1년이 지난 지금 드디어 수강을했고, 수료를 했다 넥스트스텝은 다양한 주제의 시즌제(?) 강의들이 존재하는 교육 플랫폼이다. 사수님 덕분에 알게되었지만, 큰 관심을 가지게된건 여러가지 복합적인 이유가 있지만 가장 큰건 catsbi 님의 회고글 이였다. (신기하게도 catsbi 님도 리뷰어 중에 있었다..

[Spring] 테스트 환경 격리 시키기 - 각 테스트마다 DB 분리하기 (@Transactional 을 사용하면 안되는 이유)

🔥현재 NEXT STEP 에서 진행하는 ATDD 강의를 수강하고 있습니다. 강의에서 예전부터 고민하던 통합테스트 환경에서 데이터베이스를 격리하는 방법에 대해 알게되어 기록을 남겨보고자 합니다. [예전에 시도해봤던 방법] 통합테스트 환경에서 시도한건 아니지만 단위테스트에서 JPA 에 의존하는 Repository 를 온전히 격리해 어떤상황에서든 성공하는 단위테스 환경을 구축하고자 했던적이 있습니다. 👉 service 단위 테스트 하기 - DB 와 독립된 테스트 환경 구축 (service unit test) 하지만 1. 단위테스트 환경에서는 사실상 Mocking 을 하는것보다 큰 장점이 없었고 2. 필요로하는 Repsitory 기능을 매번 정의해주어야해서 많이 번거로웠습니다. 👏🏻 그치만 통합테스트 환경에서는..

[Spring Security] 존재하지 않는 API 호출 시 404 대신 401 or 403 을 반환할 때

개발환경은 Spring Boot 3.0.x + Spring Security 6.x 입니다 [목차] 문제 상황 Spring Security 에서 404를 반환하지 않는 이유 문제 해결 [결론 요약] error page 설정 FORWARD_REQUEST_URI - error 처리 경로 ("/error") spring seurity 에 등록 AuthenticationEntryPoint 혹은 AccessDeniedHandler 에서 핸들링 1. 🤣 문제상황 Spring Security 를 적용하니까 이게 6 버전이라 그런건지,, 설정을 놓친건지 클라이언트에서 존재하지 않는 리소스 endpoint 를 호출할 때 404 NOT FOND 를 반환하지 401 UnAuthorization 코드를 반환하는 문제가 있었습니..

Spring/Spring Boot 2023.07.15

Spring Security Exception Handling - Filter 단 예외 처리하기

오늘은 Spring Security 를 적용했지만 JWT 가 만료되거나, 잘못된 토큰일 경우 401 코드 뿐만아니라 에러 메세지까지 핸들링 해줄 수 있도록 설정해 주고자 합니다. 1. Spring Security 와 @ControllerAdvice 먼저 상황은 아래와 같습니다. (깔끔하져?) 사이드 프로젝트 진행중인데, 바빠서 이부분까지 신경을 못 써주고 당연히 메세지까지 전달해주겠지~ 했지만 아니였습니다. 일단 저는 Spring Boot 에서 에러 핸들링을 @ControllerAdvice 를 이용한 AOP 방식으로 처리해주었는데요 📌Spring Security 는 Spring Context 의 바깥 쪽, 즉 Filter 단에서 Servlet 에 전달되기 전에 처리됩니다. @ControllerAdvice..

Spring/Spring Boot 2023.07.06

[Spring Junit] @SpringBootTest + @Autowired 에러 "Could not autowire. No beans of "

때는 바야흐로.. ATDD 과정 수강 중 각각의 E2E 인수테스트의 데이터베이스를 서로 영향받지않게 격리 시켜주기 위해 test 패키지에 만든 별도의 클래스를 빈으로 올려 @Autowired 로 주입받고자 했습니다. 하지만 에러가 뜨는군요! DataBaseCleanUp 이라는 Class는 Test 패키지 아래에서만 존재하는 클래스입니다. @TestComponent public class DataBaseCleanUp { .. 생략 } @SpringBootConfiguration 의 scan 대상으로는 포함시키지 않기위해 @TestComponent 를 적용해 주었습니다. @TestComponent는 Test 를 위한 Component 이지만, javadoc 설명처럼 직접적으로 ComponentScan 을 사..

Spring/Spring err 2023.07.05

[Spring] oneToMany, 일 대 다 관계 조회 성능 테스트 (Jpa, QueryDsl, Java Stream, 단일 DB 조회 쿼리 성능 비교)

👏🏻 오랜만에 포스팅! 오늘은 Spring 에서 다대다, 일대다 관계를 가지는 RDB 테이블에서의 데이터를 가져올 수 있는 방법과, 어떤 방법이 제일 빨랐는지 기록해볼려 합니다. 보통 Spring 에서 JPA를 사용하면 oneToMany, manyToMany 의 관계에서 터지는 N+1 문제를 해결하기 위한 방법을 많이 고민하고는 합니다. 저 또한 취준생때 겪었던 문제 중 가장 고민을 많이 고생했던 문제로 포스팅을 남겼던 기억이 있습니다. 👉 [Spring] JPA N+1 문제 해결방법(지연로딩 N+1, 2개 이상 ToMany 관계, fetch join, 페이지네이션) [목차] ✔️ 이번 포스팅에서는 JPA 의 @OneToMany 기능의 사용을 전혀 고려하지 않고 아래의 방법들에 대해서만 비교를 해보았습니..

Spring/Spring Boot 2023.06.30

[Spring Security] @AuthenticationPrincipal 유닛 테스트 - Custom Mock User 삽입하기

✨ 이번 포스팅에서는, @AuthenticationPrincipal 유닛 테스트에 대해서 기록해보고자 합니다. 현재 프로젝트는 JWT + Spring Security를 사용하고 있고, Spring Security 에서 제공해주는 User 객체가 아닌 실제 디비에 저장되어있는 Custom 한 User 정보를 이용해 인증된 유저를 SecurityContextHolder에 저장하는 방식으로 구현해놓았습니다. 참고 👉 Spring Security 가이드 (with. Spring boot 3.0) - 스프링 시큐리티란, 동작 과정, 사용 방법, JWT 발급 그렇기 때문에 요청이 들어오는 Rest API 에 담긴 JWT가 정상적으로 인증이 가능한 토큰이라면 → 지속적으로 DB에 접근하지 않고도 로그인한 객체 정보를..

반응형