🗂️ Etc

    [Thymeleaf] Fragment vs thymeleaf-layout-dialect 차이

    둘다 공통 Layout 처리를 하기 위해 사용한다. Fragment 1. index.html (스프링으로부터 redirect 된 실제 컨텐츠 페이지) 컨텐츠 내용 2. header.html 공통 헤더 파일 추가 index.html에 위와 같은 코드를 적으면 header.html의 fragment 값이 headerFragment인 것을 가져오는 코드. thymeleaf-layout-dialect Maven Or Gradle에 thymeleaf-layout-dialect 의존성을 추가해서 사용한다. 1. index.html (실제 컨텐츠 페이지) 2. 스프링으로부터 redirect 된 컨텐츠 페이지 컨텐츠 내용 스프링에서 redirect 된 컨텐츠 페이지에 layout:fragment="content"를 적..

    SVN, GIT 장단점

    SVN은 GIT보다는 단순하다. SVN를 쓴다는 것은 보통 commit, update만 사용하는 경우가 많다. 이 경우에 어떤 단점이 있는지 알아보자. 어떤게 개발이 끝난거고 어떤게 개발 중인거야? 개발이 끝난 것과 개발 중인 것에 대한 차이는 운영 업무를 할 때 중요하다. 남자, 여자 2명의 개발자가 존재한다. 남자는 14일짜리 업무가 잡혔고 여자는 7일짜리 업무가 잡혔다. 남자는 퇴근시간이 다가오자 습관처럼 소스를 커밋한다. 다음 날 여자도 습관처럼 개발 시작에 앞서 현재 소스를 맞추기 위해 업데이트를 받고 시작한다. 그리고 7일이 지났을 때 여자는 운영계에 소스를 배포하게 되었다. 그런데 운영계가 에러가 나버렸다. 이유가 뭘까? 여자는 남자가 아직 개발 중이었던 소스를 내려받아서 그 위에 개발을 하..

    Rest Api는 쓰기 어렵다. 근데 Http Api도 어렵다.

    Rest Api를 공부하다 보면 느끼는 것이 Restful하게 개발한다는 것은 굉장히 어렵다는 것이다. Rest Api. 지켜야 될게 왜 이렇게 많아? Rest Api를 구축할 때 딜레마에 빠진다. A 방법, B 방법 다 올바르지 않기 때문이다. 그리고 개발 과정에서 이 룰을 다 지키자니 개발 생산성이 떨어진다. 결국 Http Api 정도만 지키자란 식으로 갈아타게 된다. Http Api만 지킨다는 것은 프로젝트의 앞뒷단의 강결합된 단점은 내버려두고 알아먹기 좋은 코드, 클린 코드만 지켜보자라는 취지가 강한 것 같다. 그렇다고 Http Api는 쉽나? Http Api는 기존 RequestMapping 하나로 처리하던 것을 Http Method를 세분화해서 처리하자는 방식인데 이마저도 어렵다. Get 메소..

    해시 알고리즘(Hash Algorithm)과 시간 복잡도(Time Complexity)

    기초 알고리즘인데 왜 어렵니? 해시 알고리즘은 알고리즘에서도 기초 알고리즘에 속하는데 다른 알고리즘에 비해선 효율을 굉장히 강조하는 개념이 들어가서 단순 for문으로만 해결할 수 있는 알고리즘이 아니다. 백준 '수 찾기' 문제가 대표적인데 [1,4,5,2,3] 라는 배열이 주어지고 [1,4,3,7,9] 라는 5개 요소가 주어진다면 아래의 각각의 요소들의 위의 배열 요소에 포함되어있는지 검사하는 문제다. 단순히 생각할 때 for문을 2개 써서 각각의 요소를 모두 검사를 하면 되는데, 그렇게 되면 5x5 = 25번을 검색하는 비효율적임이 발생한다. 그래서 여기서 시간복잡도를 공부하게 됐다. 시간 복잡도(Time Complexity) 1. O(1) - 1등 int n = 1000; System.out.prin..