본문 바로가기

분류 전체보기150

객체지향 연습하기 (Java) - 볼링 게임 점수판 - 메시지 생각하기 객체지향 연습하기 (Java) - 볼링 게임 점수판 지난 포스트 에서 볼링 게임 점수판을 구현하기에 앞서 생각해야할 것들을 정리해봤습니다. 이번 포스트에서는 볼링 게임 점수판을 구현하기 위해 어떤 객체들이 있고, 어떤 메시지들이 필요한지 살펴보겠습니다. 다만 주의할 점은 설계는 구현 과정에서 변할 수 있다는 점과 구현 전에 생각해보는 설계에 너무 큰 공을 들이지는 않을 것이라는 점입니다. 먼저 볼링 게임 점수판에는 어떤 객체들이 있을지 생각해보겠습니다. 플레이어 첫번째로 볼링 게임을 플레이하는 플레이어가 있습니다. 플레이어는 투구를 해서 볼링 핀을 넘어뜨리게 됩니다. 지금 프로젝트는 볼링 게임 프로젝트가 아닌 볼링 게임 점수판 프로젝트이기 때문에 플레이어가 어떤 식으로 투구할지는 생략하겠습니다. 볼링 핀.. 2020. 5. 26.
객체지향 연습하기 (Java) - 볼링 게임 점수판 - 생각해보기 객체지향 연습하기 (Java) - 볼링 게임 점수판 객체지향의 사실과 오해를 읽고, 객체지향 패러다임을 좀 더 이해하고, 연습하기 위한 자바 프로젝트입니다. 프로젝트의 주제는 객체 지향 프로그래밍 연습하기 좋은 방법은? 이라는 글을 읽고 볼링 게임 점수판으로 결정했습니다. 틀린 점, 개선해야할 부분이 있다면 피드백 주시기 바랍니다. 아무래도 경험이 부족하다보니 '~~ 것 같습니다' 같은 표현이 많이 등장하는 점 양해부탁드립니다. 구현에 앞서 프로젝트에 대한 분석과 설계를 해보겠습니다. 가장 먼저 해야할 것은 볼링 게임의 점수가 어떤식으로 계산이 되는지 알아보는 것 입니다. 볼링 점수 계산법 위의 내용을 간략히 정리해보면 볼링 핀은 10개 이다. 프레임은 총 10번 진행된다. 플레이어는 한 프레임에 두번 .. 2020. 5. 19.
Git Hub - Issues & Projects로 프로젝트 관리하기 Git Hub - Issues & Projects로 프로젝트 관리하기 Git Hub에 있는 Issues Projects 기능을 이용해 프로젝트를 관리하는 법을 알아보겠습니다. 간략하게 용어에 대해 설명하자면 Issue(이슈)는 다양한 작업 이라고 생각하시면 됩니다. 버그 수정, 새로운 기능 추가, 개선 해야할 기능 등등을 이슈라고 합니다. 이런 다양한 Issue(이슈)를 기반으로 작업을 진행하게 됩니다. 이런 Issue(이슈)를 관리하는 도구를 이슈 트래커라고 부릅니다. JIRA Trello 등등 다양한 이슈 트래커들이 있습니다. 그 중에서 앞서 말한대로 Git Hub에 있는 Issues Projects 기능을 이용하겠습니다. 깃허브에 있는 repo중에 관리할 repo를 선택해 들어갑니다. Issues .. 2020. 5. 10.
책읽는게 느린 개발자 책읽는게 느린 개발자 공부에 있어서 나의 단점 중 하나는 책 읽는 게 너무 느리다 이다. 이건 중학교때부터 나의 발목을 잡아왔다. 남들보다 책 읽는 속도가 너무 느리다보니 자연스레 독서량이 줄어들었다. 아이러니하게도 책은 또 좋아해서 서점도 자주가고, 항상 책을 많이 읽고싶은 욕망이 있다. 어릴때는 이런 점이 너무 스트레스여서 속독법도 익혀보려하고 만화책, 판타지 소설책 등등 다양한 시도를 했었다. 이게 어떻게 해도 책이 빨리 읽혀지지가 않는다. 그렇다고 난독증인거 같지는 않다…. 지금도 만화책 한권을 보려면 한시간이 넘게 걸린다. 1시간에 1권이 가능한가... 그렇다고 무작정 속도가 느린건 아니다. 그냥 페이지나 문단을 쉽게 쉽게 못넘어가는 것 같다. 조금이라도 더 머릿속에 들어와야 직성이 풀려서 페이.. 2020. 4. 28.
스프링부트 JSON 응답처리와 예외처리 스프링부트 JSON 응답처리와 예외처리 저번 게시판 프로젝트를 하면서 느낀 부족한 점 중에서 예외처리 미흡 JSON Return 시에 공통된 포맷으로 리턴하지 못한점 이 있었습니다. 이 두문제에 대해 포스팅 해보겠습니다. 혹시 틀렸거나, 더 좋은 방법이 있다면 댓글 부탁드리겠습니다! 공통된 포맷으로 JSON 리턴하기. 요청에 대한 응답을 할 때, 요청마다 JSON 응답의 포맷이 달랐기때문에 클라이언트에서 요청마다 다른 처리를 했습니다. Return되는 JSON의 포맷이 통일되어있다면 api호출시 error처리에 대한 부분도 통일되게 할 수 있을 것 같습니다. 우선 return 하게될 JSON 포맷은 { data: { // 해당 요청의 결과가 들어가게 됩니다. } errors: { // 오류가 있다면 오류.. 2020. 4. 22.
1일 1커밋 100일 회고 1일 1커밋 100일 회고 1일 1커밋을 진행한지 어느덧 100일이 지났다. 그 동안의 느낀점, 부족한 점을 정리하기 위해 포스트를 작성한다. 현재 깃허브 커밋 상황이다. 1일 1커밋을 하고 한달째에 회고글 을 작성했었다. 시간이 참 빠르게 흘러간다는 걸 느꼈다. 어느덧 100일이라니…. 크게는 3가지의 활동이 있었다. 블로그 작성 계층형 게시판 만들기 인터넷 강의 시청 내가 생각한 1일 1커밋의 큰 장점은 내가 시작한 일에 마무리를 지을 수 있게 해주는 것 이라고 생각한다. 호기롭게 시작하기는 쉬워도 마무리를 한다는 건 정말 어려운 일인 것 같다. 출처(https://m.vingle.net/posts/2559756?shsrc=fb) 특히나 나는 마무리를 잘 하지 못한다는 단점이 있다. 그래서 학원 수강.. 2020. 4. 13.
이력서만들기 - GitHub Page 이력서 만들기 - GitHub Page 저는 그 동안 잡코리아, 사람인에 작성한 이력서를 이용해 구직 활동을 했습니다. 요즘 로켓펀치, 원티드 등 다양한 개발자 구직 / 구인 서비스가 늘어나면서 이력서 정리에 대한 필요성을 느꼈습니다. 저는 스펙이 낮은 편에 속하기 때문에… 좀 더 눈길을 끌만한 이력서가 없을까? 하는 생각을 하게되었고, GitHub Page 를 이용해 이력서를 작성하기로 했습니다. 이력서는 경력을 쌓아가면서 꾸준히 관리를 해야한다고 들었기 때문에 이번 기회에 포스트를 작성하면서 이력서를 만들어보기로 했습니다. 먼저 깃허브에 Repository를 생성합니다. 위 처럼 [내 아이디].github.io 라는 이름으로 저장소를 생성하면 깃허브 페이지 서비스를 이용할 수 있습니다. 이력서로 사용.. 2020. 4. 12.
고수의 발자취를 따라서 - 계층형 게시판 후기, 피드백 고수의 발자취를 따라서 - 계층형 게시판 후기, 피드백 2달 가량의 계층형 게시판이 마무리 되었습니다. 전체 코드는 Git Hub에 있습니다. 계층형 게시판 github 게시판 페이지 게시판 상세 페이지 게시판 삭제 후 페이지 허접하지만… 여차저차 마무리가 되었습니다. 그 전에 틈틈히 정리한 포스트는 게시판 조회에서 마무리했습니다. 점점 새로운 기술보다는 코드를 복붙하는 느낌이 강해졌기 때문입니다. 후기 정말 간단하게 구현해서 후기랑 피드백을 쓰기도 민망하지만 작은 일에도 스스로에게 피드백을 주고 개선하는게 중요하다 생각합니다. 사실 처음 시작했을때 마무리가 될지… 걱정이 앞섰는데 여자처차 마무리가 되어서 후련한 기분이 듭니다. 이것저것 기능을 더 붙일수도 있겠지만 초반에 완성 시키고자 한 기능에 대한 .. 2020. 4. 6.
고수의 발자취를 따라서 - 계층형 게시판(10) - 마무리 게시판 기능 구현 (4) 1. 프로젝트 생성 2. DB 연결 3. 로그인 Front Page 작성 4. 로그인 기능 구현 5. 게시판 Front Page 작성 6. 게시판 기능 구현 게시판 기능 구현 - 게시글 조회 이제 본격적으로 게시판의 기능을 구현해보도록 하겠습니다. 먼저 게시글을 조회하는 기능을 만들겠습니다. 현재 계층형 게시판을 만들고 있기 때문에 저번 포스트 에서 만들어 놓은 쿼리를 수정하여 적용하겠습니다. WITH RECURSIVE CTS AS ( SELECT id ,title ,content ,depth ,parent_id ,author_id ,created_date ,modified_date ,CAST(id as CHAR(255)) lvl ,id as groupno FROM boards .. 2020. 4. 5.
고수의 발자취를 따라서 - 계층형 게시판(9) 게시판 기능 구현 (3) 1. 프로젝트 생성 2. DB 연결 3. 로그인 Front Page 작성 4. 로그인 기능 구현 5. 게시판 Front Page 작성 6. 게시판 기능 구현 게시판 기능 구현 - 연관 관계 매핑 이제 본격적으로 게시판의 기능을 구현해보도록 하겠습니다. 기본적인 CRUD기능을 구현하기 전에 Entitiy의 연관 관계를 설정하겠습니다. CRUD란 Create Read Update Delete 의 앞 글자들을 따서 CRUD라고 부릅니다. domain 패키지 아래 위의 사진처럼 boards, images 패키지를 생성합니다. board 패키지 안에 Boards 클래스를 생성합니다. Boards (import 부분은 생략했습니다) 전체 코드는 Git Hub 에 있습니다. package c.. 2020. 4. 1.
신입 개발자가 느낀 공부와 실무의 차이점 신입 개발자가 느낀 공부와 실무의 차이점 아직 햇병아리 신입이지만… 신입으로 느낀 실무와 공부의 차이점을 정리하려고 한다. 물론 회사마다 차이점이 있고, 내가 지금 개발자로써 접하는 것은 정말 일부분이지만 새로운 것을 접해도 언젠가는 당연하게 느껴지기 때문에 글로써 정리를 하려고한다. 방대한 스케일(?) 처음 회사의 프로젝트 코드를 받았을 때 생각보다 스케일이 커서 놀랐었다. 당연히 혼자서 개인 프로젝트를 했을 때랑은 차원이 다른 양이었다. 프로젝트 안에 있는 폴더의 숫자부터 많았기 때문에 역시 실무는 다르긴 다르구나 라는 생각을 했었다. 사실 혼자서 공부를 했을 때는 폴더의 구조나, 코드의 구조 같은 설계에 대한 부분은 크게 신경쓰지 않고 개발을 했었다. 작성한 코드의 양이 늘어나고, 프로젝트의 구조가.. 2020. 3. 24.
고수의 발자취를 따라서 - 계층형 게시판(8) 게시판 기능 구현 (2) 1. 프로젝트 생성 2. DB 연결 3. 로그인 Front Page 작성 4. 로그인 기능 구현 5. 게시판 Front Page 작성 6. 게시판 기능 구현 게시판 Front Page 작성 기능을 구현하기 전에 화면을 먼저 만들겠습니다. 게시글을 보는 페이지를 만들겠습니다. boardDetail.html 을 추가하겠습니다. boardDetail.html 타이틀 작성자 님이 작성일 작성한 글입니다. 게시글 본문 원글보기 답글달기 삭제 이제 페이지를 만들었으니 Controller를 수정하겠습니다. WebController.java package com.board.webserivce.web; import java.security.Principal; import java.util.Opt.. 2020. 3. 14.