본문 바로가기

전체 글35

k 애자일 과 소프트웨어 개발 오늘날 애자일이란 단어는 it에 관심이 있거나 이에 관련된 일을 종사하는사람이라면 누구나 한번쯤은 들어봤을 단어이다. 하지만 애자일에 대한 생각을 물어보면 사람들마다 다른 견해를 가진다. 이상주의이다, 애자일이 잘못된 이해와 관례로 실행된다. 현실과는 멀다. k애자일.. 애자일 선언의 시작은 프로그램 개발자로부터 비롯되었다. 우리가 어떤것을 가치로 두고 개발해야하는가? 왜 개발이 비효율적이고 어렵게 다가가는걸까? 여러 고민을 거듭하다 탄생한 애자일.. 더 좋은가치를 추구하기 위해 시작했던 애자일은 우리나라뿐만 아니라 세계적으로 다른 의미로 퇴색되어 사용되고있다. 기술적측면은 배제한채 프로젝트 관리측면에서 애자일코치가 생겨나고, 애자일 방법대로 스크럼하고 툴을 쓰면 일을 잘 할거라고 믿고 있다. 하지만 기.. 2022. 9. 9.
로컬과 운영서버에서 BindingError 메세지가 다르다? DevTools Property 필자는 SpringBoot 2.3.x 버전 환경에서 로컬과 운영, 개발환경에서 바인딩 에러 메세지 처리에 대한 동작이 다른것을 발견했다. 바인딩 에러처리에 대한 설명은 이전 글 참조(granger.tistory.com/69) Spring Boot 2.3.x 에러페이지 BindingException 처리에 대한 ErrorAttibutes 변화 스프링 부트 2.3 버전 부터는 에러처리에 대한 메시지 정책이 변경되었다. 버전 변화로 인해 디폴트로 더이상 BindingExcption 대해서 발생원인에 대한 많은정보를 담고 있는 정보를 메세지에 담아서 granger.tistory.com 잘못 배포되어 코드가 다른가 Jar를 확인해보니 같았다. 어떻게 된것일까? 디버깅과 로깅을 통해 문제의 원인을 분석하던중(nar.. 2021. 1. 30.
Spring Boot 2.3.x 에러페이지 BindingException 처리에 대한 ErrorAttibutes 변화 스프링 부트 2.3 버전 부터는 에러처리에 대한 메시지 정책이 변경되었다. 버전 변화로 인해 디폴트로 더이상 BindingExcption 대해서 발생원인에 대한 많은정보를 담고 있는 정보를 메세지에 담아서 보내지 않는다. 이에 대한 에러메세지에 대한 처리는 ErrorController -> DefaultErrorAttributes 에서 처리하고 있다. 에러처리를 ControllerAdvice, RestControllerAdvice 같은 별도의 에러처리를 사용하지 않는다면 embed tomcat까지 에러처리를 전파하게 되고 ErrorController에서 에러처리를 하게 된다. 친철하게 설명하고 있지 않지만 예전에 올려둔 아래 글을 참고하면 좋겠다. (개인 기록용으로 작성된 글이었다) granger.tis.. 2021. 1. 29.
독학? 국비교육? 개발자로 시작하려는 사람들에게 취업문제, 적성 등의 이유로 개발자로 전향하려는 사람들에게 어떻게 준비를 하면 좋을지 국비교육을 들어야할지 독학하는지 좋을지 질문을 많이 받고 있습니다. 이분들에게 조금이라도 도움이 되고자 적어봅니다. 우선 개발자로 전향하는게 좋을지에 대한 애기는 상황마다 다르기 때문에 주제넘게 주저리 되기 보다는 개발자가 위해 어떻게 미래를 준비하면 좋을지에 대해 애기해볼까 합니다. 결론부터 애기하자면 이론을 공부하기전에 먼저 개발를 많이 해보는것이 좋다는 말을 하고 싶습니다. 로버트 L, 글래스는 [소프트웨어 크리에이티비티 2.0] 라는 책에서 소프트웨어 분야에서는 이론보다 실무가 더 앞서 있으며 실무가 중요하다고 말하고 있습니다. 저는 제 경험를 비추어볼때 아주 공감되는 내용이었습니다. 실제로 처음 이론을 공부할때.. 2020. 12. 28.
N + 1 Query, 쿼리 호출 증가 JPA Batch Fetch Size로 방지하자 granger.tistory.com/48 Spring data jpa Lazy N+1 query / querydsl join 적용하기 일반적으로 불필요하게 리소스를 낭비를 하지 않기 위해 N : 1 or 1: N 관계에 LAZY로 설정합니다. 이에 대한 예시로 Member Entitiy 와 Group Entity로 나누었고, 서로 양방으로 참조하고 있다고 가정하겠습 granger.tistory.com 앞서 글을 통해 N+1 query가 발생되는 경우를 알아보았다. JPA를 쓰다보면 의도치 않게 지연로딩에 의하여 더 많은 쿼리가 발생되어 조회가 된다. 이를 최적화 하기 위해 hibernate.default_batch_fetch_size, @BatchSize를 적용한다. ex) Spring Boot, app.. 2020. 9. 23.
[퍼온글] 소프트웨어 집단의 부패:Expert Beginner의 유산 나에게 심글을 울리는 글. 시간이 지나도 다시 읽고 싶은 글이기에 허락하는선에서 글을 옮겨본다.. [번역]소프트웨어 집단의 부패:Expert Beginner의 유산https://medium.com/@jwyeom63/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4-%EC%A7%91%EB%8B%A8%EC%9D%98-%EB%B6%80%ED%8C%A8-expert-beginner%EC%9D%98-%EC%9C%A0%EC%82%B0-9d226b6ebde2[번역]소프트웨어 집단의 부패:Expert Beginner의 유산*이 글은 Erik Dietrich의 How Software Groups Rot: Legacy of the Expert Beginner를 번역한 글입니다. 모든 저작권.. 2020. 7. 4.