분류 전체보기
-
테스팅은 SW 개발의 필수적인 부분으로, 전문적으로 테스트만을 담당하는 직군이 존재할 정도로 그 중요성이 크다. 특히 TDD(Test Driven Development)나 BDD(Behavior Driven Development)와 같은 현대적인 개발 방법론들은 테스팅을 개발 과정의 핵심으로 두기도 한다. 그러나 모든 개발자가 테스트 전문가가 될 필요는 없다. 특히 애플리케이션 개발 시 기능별로 정확하게 동작하는지 검증하는 단위테스트는 개발자 간단히 수행할 수 있으며, 이는 SW 품질을 보장하는데 아주 중요한 역할을 한다.이번 포스트에서는 Java 개발자들에게 가장 친숙한 단위테스트 프레임워크인 junit의 필요성과 간단한 사용법에 대해 살펴보자.JUnit 5 User Guide JUnit 5 User ..
[junit] jupiter 1. 기본 설정 및 활용테스팅은 SW 개발의 필수적인 부분으로, 전문적으로 테스트만을 담당하는 직군이 존재할 정도로 그 중요성이 크다. 특히 TDD(Test Driven Development)나 BDD(Behavior Driven Development)와 같은 현대적인 개발 방법론들은 테스팅을 개발 과정의 핵심으로 두기도 한다. 그러나 모든 개발자가 테스트 전문가가 될 필요는 없다. 특히 애플리케이션 개발 시 기능별로 정확하게 동작하는지 검증하는 단위테스트는 개발자 간단히 수행할 수 있으며, 이는 SW 품질을 보장하는데 아주 중요한 역할을 한다.이번 포스트에서는 Java 개발자들에게 가장 친숙한 단위테스트 프레임워크인 junit의 필요성과 간단한 사용법에 대해 살펴보자.JUnit 5 User Guide JUnit 5 User ..
2023.11.23 -
logback과 같은 logging 시스템을 사용할 때 패키지 별로 별도의 로거를 사용하기 위해서 아래와 같이 logger를 추가할 수 있다. 즉 기본적으로는 info level의 log를 출력하고 xyz로 시작하는 패키지는 debug를 적용하고 싶다는 의도이다. 하지만 위와 같이 작업한 경우 슬프게도 log는 두 번씩 나오게 된다. [Quietjun:] [DEBUG] [x.q.m.j.m.r.JusoRepository.parse- 57] 주소 정보: 20551 [03-24 09:21:52] [DEBUG] [x.q.m.j.m.r.JusoRepository.parse- 57] 주소 정보: 20551 기본적으로 logback은 상위 logger(root)로 하위(name=xyz)의 속성들이 추가된다. 따라서 ..
[logging] logback 사용 시 로그 메시지 중복 출력 문제 처리logback과 같은 logging 시스템을 사용할 때 패키지 별로 별도의 로거를 사용하기 위해서 아래와 같이 logger를 추가할 수 있다. 즉 기본적으로는 info level의 log를 출력하고 xyz로 시작하는 패키지는 debug를 적용하고 싶다는 의도이다. 하지만 위와 같이 작업한 경우 슬프게도 log는 두 번씩 나오게 된다. [Quietjun:] [DEBUG] [x.q.m.j.m.r.JusoRepository.parse- 57] 주소 정보: 20551 [03-24 09:21:52] [DEBUG] [x.q.m.j.m.r.JusoRepository.parse- 57] 주소 정보: 20551 기본적으로 logback은 상위 logger(root)로 하위(name=xyz)의 속성들이 추가된다. 따라서 ..
2023.11.23 -
이번 포스트에서는 SpringBoot를 위한 4가지 알쓸신잡(알아두면 쓸모있는 신기하고 잡스런 기술들)에 대해 살펴보자.SpringBoot는 어쩌면 자바에서는 종합예술이기 때문에 사전에 얕게라도 알아야 할 지식들이 많다. 대표적인 것들이 maven과 같은 빌드 시스템, logging framework 활용, lombok 활용, junit을 이용한 단위 테스트가 있다. 아직 이 기술들에 대한 지식이 없다면 간단히 살펴보고 오는 것이 좋겠다. SpringBoot를 위한 알쓸신잡 Mavenhttps://goodteacher.tistory.com/483 [maven] maven 활용 메뉴얼 1이번 포스트에서는 maven을 이용한 프로젝트 관리에 대해서 살펴본다. Maven이란? Maven은 아파치 재단에서 ..
03. SpringBoot를 위한 알쓸신잡이번 포스트에서는 SpringBoot를 위한 4가지 알쓸신잡(알아두면 쓸모있는 신기하고 잡스런 기술들)에 대해 살펴보자.SpringBoot는 어쩌면 자바에서는 종합예술이기 때문에 사전에 얕게라도 알아야 할 지식들이 많다. 대표적인 것들이 maven과 같은 빌드 시스템, logging framework 활용, lombok 활용, junit을 이용한 단위 테스트가 있다. 아직 이 기술들에 대한 지식이 없다면 간단히 살펴보고 오는 것이 좋겠다. SpringBoot를 위한 알쓸신잡 Mavenhttps://goodteacher.tistory.com/483 [maven] maven 활용 메뉴얼 1이번 포스트에서는 maven을 이용한 프로젝트 관리에 대해서 살펴본다. Maven이란? Maven은 아파치 재단에서 ..
2023.11.21 -
이번 포스트에서는 Redis를 이용해서 세션을 관리해보자. 내용은 다음의 글을 참조한다.https://docs.spring.io/spring-session/reference/guides/boot-redis.html Spring Session - Spring Boot :: Spring SessionAfter adding the required dependencies, we can create our Spring Boot configuration. Thanks to first-class auto-configuration support, setting up Spring Session backed by Redis is as simple as adding a single configuration property ..
SpringBoot에서 Redis를 이용한 세션 관리이번 포스트에서는 Redis를 이용해서 세션을 관리해보자. 내용은 다음의 글을 참조한다.https://docs.spring.io/spring-session/reference/guides/boot-redis.html Spring Session - Spring Boot :: Spring SessionAfter adding the required dependencies, we can create our Spring Boot configuration. Thanks to first-class auto-configuration support, setting up Spring Session backed by Redis is as simple as adding a single configuration property ..
2023.11.16 -
이번 포스트에서는 Redis를 이용한 세션 관리에 대해 살펴보자. scale up / scale out 인프라 업그레이드열심히 프로젝트를 진행하고 결과물이 잘 서비스되는 것을 바라보는 것은 매우 흐믓한 일이다. 그러다 사이트 이용자가 점점 많아지다 보면 한 번 씩 렉이 걸리기도 하고 처리에 시간이 걸리는 모습을 보다보면 숨이 턱턱 막힌다. 이럴 때 우리는 인프라의 업그레이드를 고민하게 된다. 인프라를 업그레이드하는 방법은 scale up 과 scale out 방식 두 개로 나룰 수 있다. scale upscale up은 보다 좋은 사양으로 대체하는 것이다. 기존의 장비에 CPU도 좋은 걸로 바꾸고 램도 추가하고 HDD도 더 큰걸로 달아준다. 이 방법은 성능을 증가시킴에 따라 상대적으로 큰 비용이 들게..
세션 관리이번 포스트에서는 Redis를 이용한 세션 관리에 대해 살펴보자. scale up / scale out 인프라 업그레이드열심히 프로젝트를 진행하고 결과물이 잘 서비스되는 것을 바라보는 것은 매우 흐믓한 일이다. 그러다 사이트 이용자가 점점 많아지다 보면 한 번 씩 렉이 걸리기도 하고 처리에 시간이 걸리는 모습을 보다보면 숨이 턱턱 막힌다. 이럴 때 우리는 인프라의 업그레이드를 고민하게 된다. 인프라를 업그레이드하는 방법은 scale up 과 scale out 방식 두 개로 나룰 수 있다. scale upscale up은 보다 좋은 사양으로 대체하는 것이다. 기존의 장비에 CPU도 좋은 걸로 바꾸고 램도 추가하고 HDD도 더 큰걸로 달아준다. 이 방법은 성능을 증가시킴에 따라 상대적으로 큰 비용이 들게..
2023.11.15 -
이번 포스트에서는 docker desktop을 이용해서 redis와 redisinsight를 설치해보자. redis 및 redis insight 설치 이미지 검색 하도 간만에 쓰다 보니 docker desktop의 화면이 많이 바뀐듯 하지만 사용법은 비슷했다. docker desktop 상단의 search에서 redis를 검색해서 추가한다. 필자는 맨 상단의 redis를 설치해 주었다. 다음으로 redis의 client인 redisinsight를 검색해보자. 이때 일부 툴은 버전이 너무 낮아서 통신에 문제가 있었다. 중간쯤에 있는 muicoder/redisinsight가 오류 없이 잘 동작한다. 이미지로 container 생성 actions에서 Run 버튼을 클릭하면 Optional settings 화면..
[docker] 06. redis 및 redisinsight 설치이번 포스트에서는 docker desktop을 이용해서 redis와 redisinsight를 설치해보자. redis 및 redis insight 설치 이미지 검색 하도 간만에 쓰다 보니 docker desktop의 화면이 많이 바뀐듯 하지만 사용법은 비슷했다. docker desktop 상단의 search에서 redis를 검색해서 추가한다. 필자는 맨 상단의 redis를 설치해 주었다. 다음으로 redis의 client인 redisinsight를 검색해보자. 이때 일부 툴은 버전이 너무 낮아서 통신에 문제가 있었다. 중간쯤에 있는 muicoder/redisinsight가 오류 없이 잘 동작한다. 이미지로 container 생성 actions에서 Run 버튼을 클릭하면 Optional settings 화면..
2023.11.15 -
점점 눈이 침침해지면서 작은 글씨 읽기가 부담스러워진다면.. eclipse font 설정 기본 font 설정 일반적으로 elcipse에서 폰트 크기를 키우기 위해서는 설정 > General > Appearance > Colors and Fonts에서 수정할 대상 메뉴를 선택해서 변경하면 된다. theme에서 변경 하지만 간혹 메뉴가 없는 경우가 있다. 이클립스에는 있지만 STS에는 없기도 하고. 이런 경우 직접 theme를 변경하는 방법이 있다.! root/plugins/org.eclipse.ui.themes_xxx/css/e4_default_[os_name].css에는 CSS로 툴에 대한 스타일 정보가 저장되어있다. 이 부분을 원하는 대로 수정하면 프로그램 전체를 수정할 수 있다.(이런 식으로 스타일을..
[eclipse] UI 폰트 크기점점 눈이 침침해지면서 작은 글씨 읽기가 부담스러워진다면.. eclipse font 설정 기본 font 설정 일반적으로 elcipse에서 폰트 크기를 키우기 위해서는 설정 > General > Appearance > Colors and Fonts에서 수정할 대상 메뉴를 선택해서 변경하면 된다. theme에서 변경 하지만 간혹 메뉴가 없는 경우가 있다. 이클립스에는 있지만 STS에는 없기도 하고. 이런 경우 직접 theme를 변경하는 방법이 있다.! root/plugins/org.eclipse.ui.themes_xxx/css/e4_default_[os_name].css에는 CSS로 툴에 대한 스타일 정보가 저장되어있다. 이 부분을 원하는 대로 수정하면 프로그램 전체를 수정할 수 있다.(이런 식으로 스타일을..
2023.11.14 -
Vue에서 v-for를 사용할 때는 key 속성을 바인딩하도록 가이드 한다. 이번 포스트에서는 그 이유에 대해서 살펴보자. https://vuejs.org/guide/essentials/list.html#maintaining-state-with-key List Rendering | Vue.js vuejs.org v-for 사용 시 key를 바인딩하는 이유 in place patch 전략 Vue는 메모리를 아끼기 위해서 DOM 최적화를 통해 DOM을 재사용 한다. 이 과정에서 in-place patch 전략이라는 것을 사용한다. patch는 일종의 "땜빵" 을 의미하고 in-place는 현재 지점에서를 의미하니까 in-place patch 전략이란 현재 DOM에서 바뀌어야할 부분만 땜빵해서 처리하고 DOM..
[vue 3] v-for와 keyVue에서 v-for를 사용할 때는 key 속성을 바인딩하도록 가이드 한다. 이번 포스트에서는 그 이유에 대해서 살펴보자. https://vuejs.org/guide/essentials/list.html#maintaining-state-with-key List Rendering | Vue.js vuejs.org v-for 사용 시 key를 바인딩하는 이유 in place patch 전략 Vue는 메모리를 아끼기 위해서 DOM 최적화를 통해 DOM을 재사용 한다. 이 과정에서 in-place patch 전략이라는 것을 사용한다. patch는 일종의 "땜빵" 을 의미하고 in-place는 현재 지점에서를 의미하니까 in-place patch 전략이란 현재 DOM에서 바뀌어야할 부분만 땜빵해서 처리하고 DOM..
2023.11.06