문제JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고)문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건s는 길이 1 이상 200 이하인 문자열입니다.s는 알파벳과 숫자, 공백문자(" ")로 이루어져 있습니다.숫자는 단어의 첫 문자로만 나옵니다.숫자로만 이루어진 단어는 없습니다.공백문자가 연속해서 나올 수 있습니다. 입출력 예 sreturn"3people unFollowed me""3people Unfollowed Me""for the last week""For The Last W..
@Valid를 걸고, 커스텀 어노테이션을 만들어서 코드가 실행되는 것을 확인하고, 테스트 코드로 검증을 하기 위해 테스트 코드를 작성하고 실행을 시켰다. 커스텀 어노테이션 코드가 궁금하다면 아래 글에서 보고 오자. https://myeongju00.tistory.com/152 [Spring Boot] Custom validator annotation 만들기API를 만들다보면 종종 클라이언트가 보낸 값을 검사하는 과정이 필요해진다. 그럴때 검증하는 로직들을 매 비즈니스 로직마다 반복적으로 넣지 말고, 어노테이션을 만들어서 사용해보도록 하myeongju00.tistory.com @Import(MockCerebrasConfig.class)class DiaryTest extends SuperIntegration..
API를 만들다보면 종종 클라이언트가 보낸 값을 검사하는 과정이 필요해진다. 그럴때 검증하는 로직들을 매 비즈니스 로직마다 반복적으로 넣지 말고, 어노테이션을 만들어서 사용해보도록 하자. ConstraintValidator 가 뭔데 ?ConstraintValidator은 jakarta.validation에서 제공하는 유효성 검증 인터페이스이다.ConstraintValidatorsns Controller 진입 전인, Interceptor에서 동작한다.이 반식은 똑같은 코드를 여러 번 반복해서 작성할 필요가 없으며, 코드 통일성 유지할 수 있어 개발 효율성을 높일 수 있다는 장점이 있다. 객체 지향 관점에서 바라봤을때도, 결합도를 낮추고 응집력을 높일 수 있다는 점에서 좋다. ConstraintValidat..
학습 내용최근.. 중간 발표 전까지.. 추석도 있었고, 빠르게 화면 제작까지는 끝내야한다는 생각에 열심히 프로젝트에만 몰입했다. 정말 하루에 5시간 자고 하루종일 프로젝트만 했던 것 같다.. 화면 설계 및 디자인 부터, 데이터베이스 설계, API 명세서 작성, 시스템 설계(클래스 다이어그램, 시퀀스 다이어그램) 등을 했고, 리액트로 유저 화면 제작까지 진행했다 ! 이번 주에 겪은 시행착오/ 어려운점화면 디자인을 하면서 공통 컴포넌트를 분리하며 작업을 했지만, 막상 다같이 개발을 시작하니 컴포넌트를 미리 만들어놓지 않아 코드들이 중복된 부분이 너무 많아짐을 느꼈다. 이는 유지보수 어렵게 하기 때문에 최대한 지양해야한다는 것을 알고있지만,, 이미 만들어둔 것들을 고치는게 쉽지않았다. 결국 내가 담당을 맡아서..
학습 내용이번주는 화면 정의서와 데이터베이스 설계를 마무리 지었다.화면 정의서를 작성하다 보니, 개개인이 생각하는 기획이 달라짐을 느껴서 중간에 요구사항 분석 문서 작업도 했다. 데이터베이스는 기획 방향도 명확해지고, 나름 데이터베이스 설계 경험도 있어서인지, 생각보다 빠르게 진행 되었다 !열심히 노션 회의록에도 기록했다 ! 이번 주에 겪은 시행착오/ 어려운점화면설계를 하면서 각자 생각하는 프로젝트의 세부 기능들이 다르고, 이전에 이야기 했던 내용들이 문서화가 잘 안되었는지, 소통 측면에서 삐그덕 거렸다. 이러한 문제를 해결하기 위해 한 팀원이 요구사항 명세를 작성하면 어떻겠냐는 의견을 주셔서 화면 설계를 하다 요구사항 명세서도 같이 작성하게 되었다.사실 이전까지는 프로젝트를 할 때 요구사항 명세를 굳이..
학습 내용이번주는 저번주에 시작한 최종 프로젝트를 이어서 진행했다. 제안서 작성, useCase, 사이트맵, 화면 정의서, 데이터베이스 설계도 시작했다. 개발이 없는 일주일이라 사실 너무 힘들었다.. 자꾸 개발이 하고싶어지고,, 기획자는 대단하구나를 새삼 느끼는 일주일이었다. 나름 열심히 문서화도 하려고 노력했다..! 이번 주에 겪은 시행착오/ 어려운점기능에 대해 이야기하다보니, 각각 생각하는 기능이 다르고, 목적이 다르다는걸 알게되었다.. 기획에대해 이야기를 하거나, 사이트맵, 화면설계를 할 때 의문점이 드는 내용들을 혼자 해결하려고 하는 것 대신, 다같이 이야기를 하는게 중요하구나를 느꼈다. 서로 많이 친해지지 못했다보니, 이런 이야기를 하는데 까지 시간이 오래 걸려 진행하는데 어려움이 있었다. 이..
학습 내용이번주는 저번주 부터 진행한 세미 프로젝트를 마무리하고, 드디어 최종 프로젝트를 시작했다..! 최종 프로젝트 주제 선정, 기능 분석, 계획 설계 까지 하였다.마지막날 까지 조원들과 수업 끝나고 나서도 열심히 만들었다 ! 메인 페이지무려 페이징 처리도 해서 너무 뿌듯했다 ㅎ댓글 좋아요 기능도 중복 방치 처리를 해주는등 디테일적으로 신경을 많이 썼다. 이번 주에 겪은 시행착오/ 어려운점처음에 개발을 시작할 때 화면을 기준으로 시작했었는데, 그 때 Header, Sidebar, 구조를 통일 시켜 놓지 않아서 분리할 때 너무 힘들었다. 앞으로 적용해야겠다고 느낀 점앞으로는 화면만으로 역할을 나누는게 아닌, 공통적인 부분을 먼저 같이 만들고 역할 분담을 하는것도 좋아보인다 ! 다음 학습을 위한 다짐..
학습 내용이번주는 지금까지 배웠던 스프링을 스프링부트에도 적용해보고, 세미 프로젝트를 시작했다..!주제는 회원 게시판으로 정해주셔서 우리는 취업 QnA 게시판을 만들기로 결정했다.디자인은 피그마에서 다함께 진행했다. 강사님께서 화면 페이지가 많다고 걱정해주셔서 다들 공휴일에도 디스코드에 모여서 작업도 했다..! 아래는 작업중인 화면 일부분이다. 이번 주에 겪은 시행착오/ 어려운점아무래도 협업을 하다보니, 기존에 2명이서 함께 프로젝트를 해본 적은 있지만, 여러명이서 해보는 것은 처음이라 역할 배분이 제일 어려웠다.. 앞으로 적용해야겠다고 느낀 점혼자 조금만 더 해보면 될 것 같은 문제여서 한시간을 넘게 붙잡고 있었는데, 아직도 해결을 못했다.. 이런거는 팀원들에게 바로 물어봐야겠다는 생각이 들었다. 다음..