끊임없이 검증하라

나에게 당연할지라도

전체 글 62

Spring_짧1_ControllerTest와 @ModelAttribute, @RequestBody

※ 이 포스트는 스프링 실습 과정에서 작성하기 때문에 정보가 부정확할 수 있는 부분이 있습니다.따라서 참고만 해주시고 틀린 부분이 있을 경우 알려주시면 감사하겠습니다. 이번 포스트는 김영한님의 '스프링 MVC 1편 - 백엔드 웹개발 핵심 기술' 강의를 일부 인용하였습니다.스프링에 대해 더 자세히 공부하고 싶으신 분은 인프런에서 해당 강의를 수강하시길 추천합니다.이번 포스트 제 깃허브의 https://github.com/kth1017/project_newPostLink 레포를  바탕으로 작성했습니다. 해당 레포의 ControllerTest를 작성하다 특정 메소드에서 NPE가 발생하여 그것을 해결하기 위해 이것저것 살펴봤습니다. 아래 나열한 코드에 대한 자세한 설명은 생략토록 하겠습니다. 필요하시다면 댓글로..

Spring 2022.07.18

P2_페이지 내 하이퍼 링크 달아주는 코드_4_TDD(2)

* 이 포스트는 학습 과정에서 그 내용을 기록한 글이기에 부정확한 정보가 포함될 수 있습니다. 따라서 해당 글은 참고용으로만 봐주시고 틀린 부분이 있다면 알려주시면 감사하겠습니다. 이전 포스트에 이어 테스트코드를 마저 작성하겠습니다. 테스트 코드 예시 - domain, repository 나머지 저번 포스트에는 테스트 메서드인 코드입력()을 자세히 살펴봤습니다. 이제 다음으로는 TDD에서 중요한 내가 얼마만큼의 테스트코드를 작성하는 것이 적절한가?를 판단하는 작업을 해보겠습니다. # 준비 - TestData 역시 테스트 코드를 작성하려고 보니 실제 로직에 사용할 allCode의 길이가 너무 길어 테스트 코드에 다 담기는 부적절할 것 같습니다. 따라서 더미 데이터용 TestData 클래스를 하나 따로 만들..

Project 2022.07.02

5_짧_th:field와 th:value

※ 이 포스트는 실습 과정에서 학습한 사항을 기록으로 남기기위해 작성하므로 정말 단순 참고용으로만 봐주세요. 다른 포스트들과 달리 글을 다듬지 않아 많이 투박할 수 있습니다. 궁금한 사항이나 틀린 내용이 있다면 알려주시면 감사하겠습니다. 사용 환경 : java11, spring 2.4.1, thymleaf 김영한님의 스프링 mvc 2의 타임리프 파트 학습 중 꽤 헤맨 부분이 존재해서 포스트로 남기려고 합니다. 일반적으로 타임리프로 html 작성할때 input 태그에 th:field를 자주 넣으실거라 생각하는데요. 여기서 제가 처음에 실습하다 헷갈린 것이 th:field와 th:value를 같이 쓰다 헤맨 적이 있습니다. 예시를 들어 설명하면, 아래는 제 프로젝트 코드 중 일부를 가져왔습니다. 입력된 ht..

Spring 2022.06.25

P2_페이지 내 하이퍼 링크 달아주는 코드_3_요구사항 분석과 TDD

* 이 포스트는 학습 과정에서 그 내용을 기록한 글이기에 부정확한 정보가 포함될 수 있습니다.따라서 해당 글은 참고용으로만 봐주시고 틀린 부분이 있다면 알려주시면 감사하겠습니다. 이전 포스트에선 웹으로 원래 로직을 이식하여 작동'만'하는 엉터리 코드를 작성하였습니다. 언급했듯 그렇게 코드를 이상하게 작성한 이유는 이번 포스트부터 잘못된 설계와 코드를 비교하는 과정을 작성하기 위한 빌드업이라고 이해해주시면 될 것 같습니다. 이전 포스트를 문제로 이번 포스트를 해설로 봐주시면 좋을 것 같습니다만 아직 저도 많이 부족한 수련생이기 때문에 자신이 더 좋은 생각이 있으시다면 알려주시면 감사할 것 같네요. 테스트코드와 TDD TDD란 Red-Green-Refactor 사이클로 이루어진 개발 방법론을 의미합니..

Project 2022.06.17

P2_페이지 내 하이퍼 링크 달아주는 코드_2_웹으로 이식

ㄱ* 이 포스트는 학습 과정에서 그 내용을 기록한 글이기에 부정확한 정보가 포함될 수 있습니다. 따라서 해당 글은 참고용으로만 봐주시고 틀린 부분이 있다면 알려주시면 감사하겠습니다. Index 1 준비 2 스프링 프로젝트 생성 3 컴포넌트 4 view 구성 5 이식을 위한 코드 분리 6 domain 설정 7 리포지토리 8 서비스 9 컨트롤러와 뷰 준비 이제 본격적으로 로직을 반영하여 웹으로 이식하겠습니다. 우선 이번 글에 작성된 스프링 코드는 일부러 정말, 매우, 아주 잘못된 코드이며 설계부터 이상합니다. 그 이유는 다음 글부터 올바른 코딩을 위해 겪는 과정을 설명하기 위한 빌드업이기에 이번 글을 읽으시면서 어떤 부분에서 무엇이 잘못되었는지 체크해보시는 것도 괜찮을 것 같습니다. 물론 인덱스 링크 기능만..

Project 2022.06.17

P2_페이지 내 하이퍼 링크 달아주는 코드_1_단순로직

* 이 포스트는 학습 과정에서 그 내용을 기록한 글이기에 부정확한 정보가 포함될 수 있습니다. 따라서 해당 글은 참고용으로만 봐주시고 틀린 부분이 있다면 알려주시면 감사하겠습니다. 목록 1 개발 환경 2 준비 3 input.txt 불러오기 4 원본 html코드 5 기능 추가 전 준비 6 기능 추가 7 코드 마무리 개발 환경 우선 이후 페이지로 로직을 이식할 예정이라 JAVA, Spring boot를 사용할 예정입니다. 추후 글을 볼 필요가 없으시면 spring 필요 없이 그냥 jdk 1.8 이상만 사용하시면 됩니다. JDK 11, IntelliJ Spring boot 준비 이전 포스트의 내용대로 1 index 자동 완성 2 페이지 내 링크 자동 완성 기능에 대한 로직을 우선 완성하겠습니다. 일단 로직은 ..

Project 2022.06.08

P2_페이지 내 하이퍼 링크 달아주는 코드_준비

* 이 포스트는 학습 과정에서 그 내용을 기록한 글이기에 부정확한 정보가 포함될 수 있습니다. 따라서 해당 글은 참고용으로만 봐주시고 틀린 부분이 있다면 알려주시면 감사하겠습니다. 불편했던 점 티스토리 블로그에 학습한 내용을 포스트하는 과정에서 제가 너무 말이 많은지 글이 길어지곤 합니다. 글이 길어지면 인덱스를 다는데 여기서 문제가 좀 있었습니다. 보통 페이지 내 링크를 걸기 위해선 목차마다 id를 지정해주고 a 태그에 #id를 써주거나 클릭시 1st로 이동 1st id 대신 name을 지정해주면 되는데 클릭시 1st로 이동 1st 하지만 목차가 길어지면 이 태그를 일일이 달기도 귀찮기에 티스토리가 기본적으로 제공하는 문서 서식에 index 링크를 작성해놓고 매번 불러오면 되지 않으려나 생각했는데 여기..

Project 2022.06.03

배경학습_2_이더리움, NFT, 그리고 지금의 블록체인

* 비유는 접근성을 높일지라도 본질을 흐리기 마련입니다. 이 포스트는 학습 과정에서 그 내용을 기록한 글이기에 부정확한 정보가 포함될 수 있습니다. 또한 너무 자세한 내용은 글의 길이를 위해 과감히 삭제한 부분도 존재합니다. 따라서 해당글은 참고용으로만 봐주시고 틀린 부분이 있다면 알려주시면 감사하겠습니다. * 해당 글은 저술가이신 유튜버 김필산님의 채널 '김필산의 사이언스 비치' 내 동영상 일부를 참고하여 작성하였습니다. 개발 지식이 전무한 일반인이시면 아래 링크된 채널도 방문하여 영상을 시청하시는걸 추천합니다. 이전 포스트에선 블록체인의 기본적인 개념을 살펴봤습니다. 오늘은 2세대 블록체인의 등장부터 NFT, 스테이블 코인과 개인적인 비트코인에 대한 견해를 얘기해보고자 합니다. 이번 글은 좀 주관적인..

CS 2022.05.24

배경학습_1_블록체인과 정보의 가치

* 비유는 접근성을 높일지라도 본질을 흐리기 마련입니다. 이 포스트는 학습 과정에서 그 내용을 기록한 글이기에 부정확한 정보가 포함될 수 있습니다. 특히나 이번 블록체인의 경우 reference가 상대적으로 적어 더욱 미흡한 점이 있을 수 있습니다. 또한 너무 자세한 내용은 글의 길이를 위해 과감히 삭제한 부분도 존재합니다. 따라서 해당글은 참고용으로만 봐주시고 틀린 부분이 있다면 알려주시면 감사하겠습니다. * 해당 글은 저술가이신 유튜버 김필산님의 채널 '김필산의 사이언스 비치' 내 동영상 일부를 참고하여 작성하였습니다. 개발 지식이 전무한 일반인이시면 아래 링크된 채널도 방문하여 영상을 시청하시는걸 추천합니다. 평소 블록체인에 대해 대략적인 개념만 알고 있던 차에 즐겨보던 유튜버인 김팔산님의 블록체인..

CS 2022.05.17

P1_게시판 프로젝트_4_페이징 기능 추가

* 이 포스트는 전 배달의민족, 현재 인프런에 계시고 유튜브 개발바닥의 크리에이터이신 개발자 이동욱님의 '스프링부트와 AWS로 혼자 구현하는 웹 서비스'를 기반으로 작성된 코드를 기반으로 진행중인 프로젝트에 대한 글임을 알립니다. 포스트 맨 아래에 관련 링크가 있습니다. * 참고로 @Getter, @Setter 어노테이션은 전부 생략했습니다. 필요할때만 언급하겠습니다. 책 부분이 끝난 후부터는 코드를 커스텀하는 과정을 포스팅합니다. 책 부분이 궁금하시면 ready부터 보시길 추천합니다. 참고 : https://github.com/kth1017/S1 이제 view는 임시로 완성되었으니 게시판에 필요한 페이징, 검색, 검증 기능을 추가로 추가하도록 하겠습니다. 이 중 가장 먼저 페이징을 먼저 소개하는게 맞다..

Project 2022.05.12