[Spring Boot 사이드 프로젝트] 3. Thymeleaf Layout 적용 (Tiles 대체)
·
사이드 프로젝트/로또명당
지난 포스팅에 이어 이번에는 `thymeleaf`를 이용해 Layout을 적용해 보겠다.`jsp`를 사용할 때에는 `tiles`를 사용했었다 보니 `thymeleaf`의 문법이 낯설어 약간의 거부감이 들었지만 사용자가 직접 설정할 부분이 현저히 줄어들어 굉장히 편하다는 인상을 받았다.그럼 차근차근 적용을 시작해 보자. 0. 레이아웃 적용 왜 하나?1) 편하다나에게는 가장 중요한 이유라고 볼 수 있겠다. 여러 페이지를 만들다 보면 결국에 공통적으로 들어가야 할 부분이 생기기 마련인데 레이아웃 적용을 안 해놓으면 그때마다 복사 붙여 넣기를 할 수밖에 없다. (사실 복붙이야 개발자의 일상이니까 조금 피곤하고 말면 되기는 한다.)2) 유지보수이게 정말 중요한데, 유지보수에 드는 에너지를 현저히 줄여준다. 100..
[Spring Boot 사이드 프로젝트] 2. 깃허브에 프로젝트 올리기(인텔리제이)
·
사이드 프로젝트/로또명당
1. 환경IntelliJ IDEA를 이용해 GitHub에 프로젝트를 올린 뒤 관리해 볼 것이다.준비물 : IntelliJ 설치, GitHub 계정2. 왜 깃허브에 코드를 올리는가?깃허브에 코드를 올려야 할 이유는 굉장히 많고, 목적에 따라 이유가 다를 것이기 때문에 사이드 프로젝트의 관점에서 그 이유를 기록해 보자.1) 보여주기 위해서사이드 프로젝트의 목적에 따라 다르겠지만 수익을 내는 서비스를 출시하는 게 목적이 아니라면 혼자 꽁꽁 숨겨놔서 좋을 것이 없다. 나는 결국 프로젝트를 통한 자기 PR이 목적인데 숨겨놓으면 그럴 수가 없다. 필요할 때만 메일을 이용해 내 소스코드 파일을 첨부해 보낼 수도 있겠지만, 누가 그런 수고스러움을 감수해 가며 내 코드를 읽을 것인가. 깃에 올린 코드는 손쉽게 공유할 수..
[Spring Boot 사이드 프로젝트] 1. Spring boot 프로젝트 세팅
·
사이드 프로젝트/로또명당
1. 프로젝트 생성 - spring initializrspring initializr를 검색하거나, 아래 링크를 통해 스프링에서 제공하는 툴에 접속해 보자.몇 가지 설정만 하면 간단히 프로젝트를 시작할 수 있다.`https://start.spring.io/`1) Project빌드 도구는 gradle을 사용할 것 이기 때문에 `Gradle - Groovy`를 선택.2) Language`Java`3) Spring Boot버전은 `3.2.5` 선택버전 뒤에 (SANPSHOT) 이 붙어있는 것은 아직 개발이 완료되지 않은 버전을 의미한다고 하니 피하도록 하자. 나는 뒤에 영어가 붙어있지 않는 것 중 가장 최신 버전을 골랐다.4) Project MetadataGroup : 보통은 도메인 네임을 사용한다. 나는 `..
[Spring Boot 사이드 프로젝트] 0. 사이드 프로젝트의 시작 방법
·
사이드 프로젝트/로또명당
1. 사이드 프로젝트 왜 시작했는가 (목표)이 글을 쓰는 시점에 나는 개발자로 일한 지 1년이 조금 넘은 뜨뜻미지근한 신입이다.나름 2년 차로써 지난 1년을 되돌아봤을 때 귀엽지만 꽤 많은 성장을 이뤄냈다고 생각했다.근데 솔직히 이건 나만의 생각이었고 뭔가 증명할 방법이 없었다.(뭐 사실 아직도 신입 나부랭이다.) 첫 개발자 생활 1년은 정말 빠르게 지나갔는데 정신을 차리고 보니 지난 1년 동안은 회사에 적응한다는 핑계로 자기 계발을 소홀히 했던 것 같다는 자각이 들었다. 그래서 나름대로 새해가 밝았을 때 자격증도 따보고 했지만 나의 불안감은 해소되지 않았다. 그리고 비로소 깨달았다. 개발자는 개발로 증명해야 한다는 것을...! 2. 무엇을 만들 것인가? (주제)혼자서 만들 수 있을 정도의 작은 볼륨을 ..
[Spring Boot] thymeleaf 에러 : org.thymeleaf.exceptions.TemplateInputException
·
Spring
로컬에서는 잘 되던 코드가 aws에 올리고 나니 에러를 일으켰다.그야말로 어...? 아까는 됐는데 상황이다.바로 putty 에서 에러 로그를 살펴봤습니다.  Exception processing template "pages/myPage/indexMypage": Error resolving template [pages/myPage/indexMypage], template might not exist or might not be accessible by any of the configured Template Resolvers  그대로 검색해보니 저만 이런 문제를 겪은게 아니었습니다.  보통 다른이들은 controller의 메서드에서 return값으로 page 경로를 반환할 때 경로 가장 앞에 /를 붙여서 문..
[백준]1000번: A+B - 파이썬(Python)
·
코딩테스트/백준(BAEK JOON)
문제두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.풀이a, b = input().split()a = int(a)b = int(b)print(a+b)입력이 한 줄로 두 개의 값이 공백으로 나뉘어 주어진다.일단 input() 메서드 을 사용해 입력 값 (A, B)를 받아준다.A, B가 한줄로 입력되기 때문에 split() 메서드를 사용해 둘을 나눠준다. split()파라미터가 없으면 공백 또는 줄 바꿈을 기준으로 문자를 나눠준다.파라미터를 넣어줄 경우 첫 번째 파라미터로 구분자를 설정할 수 있고,두 번째 파라미터는 분할 횟수를 정할 수 있다. 기본값은 -1로 횟수 제한 없이 다 자른다.3을 넣어줘서 3번 쪼개었다는 것을 확인할 수 있다.3번 쪼개서 4개로 나뉘어진 모습. spli..
[백준]2557번: Hello World - 파이썬(Python)
·
코딩테스트/백준(BAEK JOON)
문제Hello World! 를 출력하시오.풀이print("Hello World!")느낀점첫출발은 역시 hello world다.이 문제를 풀며 java로 처음 백준 문제를 풀던 때를 떠올렸다.public static void main을 외우며 괴로워했던 나.뭔지도 모르면서 그저 암기해야 하는 줄 알았는데...PYTHON은 그런 거 없네.답을 적으면서도 설마 이게 맞나 싶었는데 맞단다.정말 기가 막힌 언어다.언제까지 쉬운지 보자.
[자바 디자인 패턴]의 싱글톤 패턴이란?
·
JAVA
자바의 기본적인 문법을 익히고 나서 개발을 하다 보면 조금 더 높은 수준을 갈망하게 되는데, 그때쯤 뭘 더 배워야 할지 고민하다 보면 정말 많은 것들을 공부해야 된다는 것을 알고 절망에 빠지게 된다. 정말 행복한 고민이 아닌가? 올라갈 수 있는 길이 있다는 사실에 기뻐하며 오늘도 공부해보자. 그중에 하나는 바로 디자인 패턴이다. 내가 만나본 자바 고수들은 모두 디자인 패턴을 중요하게 생각했다. 그들은 이러쿵저러쿵 설명하기보다는 '이 패턴을 사용해 보세요...' 같은 전문가 같은 대화를 나눌 수 있는 사람을 선호했다. 물론 나의 수준은 팩토리 메서드 패턴이요? 들어는 봤는데...? 헤헿..ㅎ 1. 싱글톤 패턴(Singleton Pattern)이란? 싱글톤 패턴은 자바와 같은 객체 지향 프로그래밍 언어에서 ..
[JAVA] VO(DTO) LIST를 특정 필드값으로 정렬하기 + 형변환
·
JAVA
나는 VO(DTO)로 이루어진 List를 List 각 객체의 특정 값으로 정렬해야 했다. 검색으로 알아낸 코드는 이렇다. List list = list.stream() .sorted(Comparator.comparing(CodeVO::getCnt).reversed()) .collect(Collectors.toList()); java stream을 활용한 정렬 방법이다. 정렬하고자 하는 list를 stream()을 이용해 정렬sorted()하는데 정렬 조건이 (Comparator.comparing(CodeVO::getCnt).reversed())인 것이다. CodeVO의 cnt값을 기준으로 내림차순 정렬하는 것이다. 오름차순 정렬을 원한다면 reversed()를 생략하면 되겠다. 여기 까지는 검색으로 빠르..
그레이트현