내일배움캠프 (68) 썸네일형 리스트형 Trello프로젝트(심화 프로젝트) 2일차 오늘은 컬럼 간 순서이동과 컬럼 삭제 기능을 구현할 것이다.// ColumnsServices.javapublic ColumnsResponseDto deleteColumns(Long columnId) { Columns columns = findById(columnId); columnsRepository.delete(columns); return createResponseDto("컬럼 삭제성공", HttpStatus.NO_CONTENT);}삭제기능은 간단히 구현했다. 순서를 바꾸는 api는 처음 구현해보는 거여서 방법을 구상하기 까지 오랫동안 헤메었다.https://blog.naver.com/yangwonder/222315111294 [최신]게시물 순서바꾸기https://sir.kr/g5_t.. Trello프로젝트(심화 프로젝트) 1일차 지금껏 배운 내용으로 팀 프로젝트를 시작하기로 했다. 프로젝트의 주제는 다음과 같다.와이어프레임:ERD Diagram:API명세서:Github rules:https://teamsparta.notion.site/Github-Rules-d46a7603bb2f4c12bfd6a8f712a4732b Github Rules | Notion깃허브 규칙teamsparta.notion.site 요구사항 중에 특이한 점이 하나 있었다.보드에 사용자를 초대하면 보드가 아닌 해당 보드에 소속된 컬럼에 소속된 카드에 대한 권한을 부여해야 하는지라 구현이 쉽지 않을 것 같았다. 참고로 필자는 컬럼과 관련된 api 담당이다. 프로젝트를 시작하기 전에 엔티티가 준비되어 있지 않으면 작업을 진행할 수 없을 것 같아서 미리 엔티티를 .. JPA 심화과정 ● 데이터베이스 드라이버와 JDBC데이터베이스 드라이버는 애플리케이션과 데이터베이스 사이의 통신을 중개하는 역할을 한다. 데이터베이스 시스템 별로 호환되는 드라이버가 모두 다르니 데이터베이스의 시스템에 맞는 드라이버를 사용해야 한다.JDBC는 Java 애플리케이션과 데이터베이스 간의 통신을 도와주는 데이터베이스 드라이버다. 개발자는 복잡한 설정 필요없이, 그리고 데이터베이스 시스템 상관없이 JDBC로 데이터베이스와의 연결을 쉽게 구성할 수 있다. spring-boot-starter-jdbc: Spring Boot 프로젝트에서 JDBC를 통해 데이터베이스와 상호작용하기 위해 사용되는 스타터 패키지 라이브러리이다.이 스타터 패키지는 데이터베이스 작업을 수행하는 데 필요한 주요 의존성과 자동 구성 기능을 제공.. querydsl로 동적 정렬 구현 querydsl로 기존 프로젝트를 리팩토링하는 도중 파라미터의 값에 따라 다른 방법으로 정렬을 하는 동적 정렬을 구현하고 싶어졌다. 처음엔 jpaqueryfactory의 orderby메소드에 pageable의 sort 멤버를 넘겨주면 간단히 해결될 줄 알았다.에러 메세지를 보니 Sort 타입의 파라미터는 받을 수 없다고 한다. 그래서 한번 orderBy메소드의 정의를 자세히 보니 OrderSpecfier라는 파라미터를 받도록 되어있었다.orderBy(board.createdAt.desc())public OrderSpecifier desc() { if (this.desc == null) { this.desc = new OrderSpecifier(Order.DESC, this.mixin);.. 아웃소싱 프로젝트 4일차 우선 지난 주말에 모여서 회의를 진행했었다.우선 팀장인 내가 팀장으로서 너무 경솔한 행동을 하였고 팀원들과 충분한 소통을 하지 않고 독단적인 판단을 하였다. 지난주 담당 튜터님께 요약하자면 팀 규모와 작업기간에 비해 프로젝트 스케일이 너무 작다는 피드백을 받았다. 필자도 계속 인지는 하고 있었다. 프로젝트를 진행하면서 뭔가 시간을 버리는 듯한 느낌을 너무 많이 받았다. 프로젝트 내용만 보면 지난 프로젝트에서 이미 했던 것들인데 왜 여기서 또 하면서 시간 낭비를 하고 있지? 라는 생각이 마음속 깊은 곳에서 계속 올라왔다. 근데 담당 튜터님께 받은 피드백을 결정타로 마음이 점점 초조해져 갔다. 이대로는 안됀다. 이렇게 프로젝트를 하는데 시간을 낭비할 수는 없다. 뭔가 이전 프로젝트에는 없던 새로운 걸 시도해.. 아웃소싱 프로젝트 5일차(KPT회고) 오늘 드디어 아웃소싱 프로젝트가 끝이 났다. 프로젝트가 끝나면서 KPT회고를 진행했다. 회고에서 다양한 의견들이 나왔지만 하나로 정리를 해밨다.Keep: 깃허브의 기능을 잘 활용해서 효율적으로 작업을 진행할 수 있었다.Problem: 기능을 많이 구현하지 못해 아쉽다.Try: 프로젝트의 스케일같이 전체적인 구조를 잘 설계한다. 도전적인 마음가짐을 갖는다.기술적으로 어려움이 많지는 않았지만 복합적인 요인 때문에 개발에 지연이 생겨서 많은 기능을 구현하지 못한게 많이 아쉬운 프로젝트였다. 다음에는 더 효율적인 방법으로 프로젝트를 진행해서 빠르게 개발을 하고 더 많은 기능을 구현해 봤으면 좋겠다. 아웃소싱 프로젝트 3일차 오늘은 api 통신간에 유효성 검사를 추가하기로 했다. 게시글이나 댓글의 내용이 비어있으면 작성이 안되거나 회원가입 할 때 아이디가 몇자 이상, 비밀번호는 대소문자, 특수문자 해서 몇자 이상 이런것 말이다. 게시글과 댓글관련 유효성 검사들은 기존에 담당하던 팀원들이 추가해 주기로 했고 회원가입이나 비밀번호 수정할 때 유효성 검사는 내가 처리해줬다.@Getter@ToStringpublic class SignupRequestDto { @Pattern(regexp = "^[a-z0-9]{4,10}$", message = "아이디는 4자 이상 10자 이하의 영문(대문자 제외) + 숫자만을 허용합니다.") private String userUid; @Pattern(regexp .. 아웃소싱 프로젝트 2일차 개발속도를 높이기 위한 시도오늘은 개발 속도를 높이기 위해 규칙을 바꾸려고 했다.기존 깃허브 규칙은 이슈 하나에 한 개의 기능(게시글 작성, 회원가입 등등..)을 팀원들이 모두 완료하면 merge하고 다음 이슈를 생성해서 계속 작업하는 것이었다. 그런데 이렇게 하니까 프로젝트의 진행속도가 너무 느려졌다. 간단한 이슈 하나 끝내는데 몇 시간씩 소요되는 사태가 발생했다. 그래서 이슈 하나에 기능의 갯수를 늘리려고 시도했는데 전혀 예상치 못한 나비효과를 불러왔다. 섣부른 판단이 부른 나비효과댓글 기능 구현하는 팀원이 조회하는 기능을 다 구현했다고 한다. 나는 그걸 듣고 기다리게 할 순 없으니 나머지 기능도 마저 구현하라고 했다. 그러자 그 팀원은 나에게 게시글 기능이 전혀 구현되어 있지 않아서 더 이상 진행이.. 이전 1 2 3 4 5 ··· 9 다음