전체보기 (113) 썸네일형 리스트형 [레거시 코드 활용 전략] CH1 소프트웨어 변경 레거시 코드 활용 전략 (재출간판) 국내도서 저자 : 마이클 C. 페더스(Michael C. Feathers) / 심윤보,이정문역 출판 : 에이콘출판사 2018.09.28 상세보기 ch 1 - 소프트웨어 변경 소프트웨어를 변경하는 이유 새로운 기능 추가 버그 수정 설계 개선 자원 이용의 최적화 1.기능 추가와 버그 수정 지금 하는 것이 버그 수정? or 기능 추가? 고객 관점 : 내가 원하는 건 A 기능이 아니라 B기능 이야 → 버그 수정 개발자 관점 : B라는 새로운 기능 기술 및 개발 관점에서 버그 수정 / 기능 추가 보다 더 중요한 것은 ? → 동작 변경 새로운 동작을 추가하는 것과 기존 동작을 변경하는 것에는 큰 차이가 있음 기존 코드 변경 → 동작 변경 새로운 코드 추가 → 동작 추가 그러나 대.. 2019년 회고 0. TL;DR 너무나 많은 것들이 변했다. 주위 환경도, 사람들도, 그리고 나이도 더 나아가 외부 요인뿐만 아니라 나 스스로도 많은 '방향'을 찾기 위해 노력했고 찾을 수 있는 한 해였다. 1. 외부적 환경 1.1. 회사 더 좋은 기회와 문화를 접하기 위해 회사를 이직했다. 아마 이번 연도에 나를 가장 많이 바꾼 터닝포인트가 아닌가 싶다. 이직을 하는 것이 쉽지는 않았다. 내가 안다고 생각했던 것들은 다 반쪽자리였다. 입으로 또는 글로는 설명할 수 없었고, 머리에서만 맴도는 그런 지식이었다. 그러기 때문에 많은 것을 정리했다. 아는 것을 입으로 중얼거리며 글로 작성하기도 했다. 또한 이직을 위한 공부를 집중적으로 했던 것 같다. 아래는 내가 이직을 위해 읽은 책이다. 객체지향의 사실과 오해 국내도서 저.. [한달 한권] 소프트웨어 장인 소프트웨어 장인 국내도서 저자 : 산드로 만쿠소 / 권오인역 출판 : 길벗 2015.09.25 상세보기 1. 내가 이 책을 선택한 이유 현재 나는 많은 것이 바뀌는 상황에 있다. 외부적으로나 내부적으로 말이다. 외부적으로는 새로운 직장으로 옮긴 지 6개월 정도가 지났고, 담당하는 서비스에도 어느 정도 익숙해졌다. 그리고 담당한 서비스를 더욱 발전시키고 가치를 더하고 싶은 상황이다. 내부적으로는 많은 것을 바꾸기 위해 시도하고 있다. 스스로 느끼기에는 어느 정도 드라이브만 더 건다면 한 단계 더 성장할 수 있을 것 같은 느낌이 드는 상황이다. 이러한 상황에서 어떤 책을 읽어야 할까라고 고민하던 도중 해당 책을 골랐다. 순전히 제목이 큰 역할을 했다. 내가 지금 모든 상황에서 필요한 건 장인정신이 아닐까라는.. H2 Database not found spring boot 환경에 h2 db 를 셋팅하고 처음 접속을 시도하면 아래와 같은 에러가 발생할 때가 있다. Database {db_path} not found, either pre-create it or allow remote database creation (not recommended in secure environments) [90149-200] 해당 이슈는 최신 h2 db를 사용할 경우, 웹 콘솔 환경에서는 보안문제로 인해 데이터베이스를 생성하지 못하는 현상이다. 아래와 같이 해결하면 된다.(mac 기준) 1. h2 다운로드 : brew install h2 2. 웹 콘솔 실행 : h2 -web 3. 터미널에 출력된 url ("key" query string 값까지 모두) 복사후 브라우저에 붙.. 부러움을 주는 친구 오늘따라 눈도 내리고 연말이라 기분도 좋고 하니깐 여러 가지 생각이 듭니다. 문뜩 한 친구가 생각나면서 이런 생각이 들었습니다. '질투'와'부러움'은 어떤 차이가 있을까 그 친구는 정말 잘하는 친구입니다. 주변에서는 너도 잘한다, 너도 할 수 있다 등등 그 친구와 비교하는 말들을 많이 합니다. 하지만 그 친구만큼 똑똑해도, 책을 많이 읽어도 그 친구가 가진 '열정'은 정말 따라가기 힘들지 않을까 생각이 듭니다. 그런 부분에서 그 친구는 '부러움'을 느끼게 하는 친구입니다. 나보다 더 많은 것을 가지고 있다고 해서 그것을 뺏거나 반대로 그 친구가 잃었으면 하는 그런 '질투'가 아니라 나도 저런 '열정'을 쫒아야지, 더 열심히 해야지 하면서 자극을 받았습니다. 가끔은 멘토가 되기도 하고, 조력자가 되기도 하.. Filter 를 활용한 ACL 만들기 (feat. Spring) 1. 개요 업무를 하던중 컨트롤러 레이어에서 허용된 IP 를 체크하는 로직이 상당수 중복코드로 남아 있는것을 발견함 IP 체크를 통해 허용된 IP가 아니라면 Exception 을 던지고 있었음 허용되지 않은 IP가 접근하는것을 Exception이 아닌 403(forbidden)응답 또는 은닉화를 위해 404(Not Found) 응답을 돌려줘야 된다고 생각함 2. Before 2.1. Code 2.1.1. Controller @RequestMapping(value = "/api/test") public Map apiTest() { // 중복코드 if (!ipInfoService.checkAllowIps()) { throw new RuntimeException( "[" + appProjectName + " .. SI 회사에서 플랫폼 회사로의 이직 여정 - 08(epilogue) 이직을 하고 거의 6개월이 흘렀다. 이제 와서 이런 글을 쓰는 이유를 물으시는 분들도 있을 것이다. 하지만 글을 쓰기로 다짐했을 때 느꼈던 감정은 '이직을 준비하면서 내가 얼마나 성장하고 많은 것을 볼 수 있구나'였다. 처음에 이직에 성공했을 때만 해도 마냥 기뻐서 이런 생각을 잘하지 못하였다. 하지만 이직을 하고 업무에 적응을 하고 나니 이런 생각들이 들기 시작했다. SI 회사에 있을 때 나는 많은 것을 느낄 수 있었다. IT가 그냥 인력 장사인 걸까? 그렇게 밤새며 공부했던 자료구조와 운영체제는 학점을 위한 과목이었나? 오라클 DBMS만 믿고 프로시저로 모든 것을 조작하는 SI환경, JAVA는 그저 CRUD를 위한 스크립트, 자동으로 만들어지는 소스코드를 통해 툴로 찍어내던 화면... 이러한 곳에서 .. SI 회사에서 플랫폼 회사로의 이직 여정 - 07(2차 최종 면접) 드디어 마지막 면접이다. 이 면접만 넘으면 길었던 이직 여정이 끝이 난다. 너무나 떨리는 마음으로 최종 면접을 보러 갔다. 마지막 면접은 두 분이 들어오셨다. 그러면서 개발자의 마인드와 진행했던 프로젝트에서 했던 업무, 그리고 간단한 기술 질문들을 하셨다. 너무나 추상적인 질문부터 엄청 자세한 기술 설명까지 넘나드는 면접이었고, 어쩌면 가장 어려운 면접이었던 것도 같다. 그렇게 최종면접이 끝나고 정말 '아 끝이다...'라는 힘 빠지는 느낌을 느낄 수 있었다. 그리고 마침내 기다리고 기다리던 아래와 같은 메일을 받을 수 있게 되었다. 진짜 마지막 일정이 끝이 났다. 도움을 주신 많은 분들에게 감사하고 너무나 고마운 일정이었다. SI 회사에서 플랫폼 회사로의 이직 여정 - 06(1차 면접) 드디어 떨리는 면대면 면접을 보게 되었다. 우선 전화면접에서 틀렸던 것이나 조금은 아리송한 질문들을 정리했다. 또한 내가 제출했던 포트폴리오/github에 있는 프로젝트들을 검토하고 다시 한번 복기시켰다. 복장은 그냥 셔츠에 슬랙스바지를 입었다. 정장을 입고싶었지만 다른 후기들을 봤을 때 정장은 너무 과한 것 같아 입지 않았다. 카카오에 도착하니 7층에 사내 카페가 있었다. 면접에 들어가니 초반에는 전공 및 내가 프로젝트에서 사용했던 기술 + 해당하는 기술에 기초 질문들을 받았다. 중반에서는 프로젝트와 관련된 내용들에서 내가 포트폴리오에 적었던 내용을 기반으로 "왜?" 했는지에 대한 질문도 있었다. 후반에는 팀 만에 면접방식이 존재하여 해당 블로그에서 밝힐 수는 없지만 기초가 있다면 풀만한 질문들이었다... Spring Boot Resource 사용시 접두사(classpath, file 등)를 사용해야 하는 이유 결론부터 말하자면 특정 Resource 타입을 사용하도록 강제해야 한다면 접두사를 사용해야 한다. Resource는 java.net.URI를 추상화한 것이다. Resource를 구현한 구현체는 아래와 같이 많이 존재한다. 이러한 리소스 타입은 Resource.getResource(String location) 메서드에 location 문자열과 ApplicationContext 타입에 의해 결정이 된다. ApplicationContext를 구현한 ServletWebServerApplicationContext 상황일 때 Resource 타입은 ServletContextResource 타입이 된다. 문제는 SpringBoot 사용 시 context path에서 발생한다. ServletContextResourc.. 이전 1 ··· 3 4 5 6 7 8 9 ··· 12 다음