UMC🚀 17

[해커톤]Swagger_이용방법(spring boot)

1. build.gradle에 의존성에 implementation "io.springfox:springfox-boot-starter:3.0.0" 를 추가해준다. 2. 그 때 뜨는 코끼리 모양을 눌러 의존성을 추가해준다. 3. config에 SwaggerConfig를 만든다. 4. 코드를 입력한다. import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors..

UMC🚀 2022.05.22

[inteilij][spring][java]편지 전송 로직

편지 전송 로직 편지를 보내는 과정에서 또래의 수신을 원하는 user, 원하지 않는 user를 구분한다. 또래의 수신을 원하는 경우 birth의 년도로 구분하여 +-5살의 차이의 user에게만 편지를 전송한다. 이렇게 생각하고 코드를 만들었는데 만약 해당 나이대의 사람이 5사람 이하라면? 여기에서 계속 에러가 발생하였다. 그래서 5명이 이하라면 선정한 5명 이하의 또래에게 보내고 나머지 사람들을 랜덤으로 골라 5명을 맞추어 편지를 보내는 로직을 만들었다. // 편지 작성(POST) public PostLetterPlantRes createLetter(PostLetterReq postLetterReq) throws BaseException { try { int letterIdx = letterDao.cre..

UMC🚀 2022.02.13

[inteillij][spring]NullPointerException 에러 해결기

또래에게 편지를 발송하는 로직에서 +-5살의 5명에게 보낸다. 문제는 또래가 5명이 없을 때 발생한다. 그래서 5명이 존재하지않는다면 또래가 아닌 사람중에서 랜덤으로 선택된 또래를 제외한 다른 유저에게 보내는 로직을 만들었다. (5명보다 작은 또래들에게는 보낸다. 나머지를 랜덤으로) 나는 그냥 5명보다 작으면 5명 전부 랜덤으로 보낼려고 했는데 팀장 레마가 map을 이용하여 일기쪽을 만들었다는 것을 알려주어 자신감을 얻어 구현하였다. 랜덤으로 5명을 뽑을 때 5명이 아니여도 에러가 발생하지않는다는 것을 확인하고 뽑힌 또래에게는 보내고 나머지 유저를 랜덤으로 골라 보내도록 로직을 만들었다. 맵을 사용하였다. if (idx_similar.getUserSimilarAge() == 1){// 편지 발송 유저가 ..

UMC🚀 2022.02.13

[UMC]UMC_1기 후기 & 처음처럼_앱개발 프로젝트&협업 후기

https://makeus-challenge.notion.site/UMC-1-7cd4b7e4bcf2402fb0ef68c60a227031 UMC 1기 데모데이 행사 안내 한 학기동안 정말 고생 많으셨습니다. 1기 UMC의 피날레, UMC 데모데이 행사 진행방식에 대해 설명드리겠습니다. makeus-challenge.notion.site 생각보다 협업이 까다롭고 프로젝트는 모르는 것 투성이였습니다. 이렇게 부족한 점이 많았지만, 함께 하는 팀원, 팀장님이 함께 있어서 배우고 또 구현 할 수 있었습니다. 혼자하면 쉽게 지쳤을 일을 같이하니 오래 지치지 않고 할수있음을 몸소 느꼈습니다. 그리고 그저 수업을 듣고 배우는 것보다 이렇게 프로젝트를 만들어보니 아예 느낌이 달랐습니다. 역시 백문이 불여일타 입니다. 첫..

UMC🚀 2022.02.12

[intellij][spring]반환할것이 없을 때 에러 상태를 반환하는 법

java는 c++과 달리 반환형이 꼭 있어야한다. c++에서는 반환형을 int로 했다고 해도 반환을 딱히 하지않아도 빨간줄이 뜨지않는다. 그러나 java에서는 반환형을 void가 아닌 다른 것을 했다면 해당 반환형에 맞는 데이터를 꼭! 반환해주어야만 빨간줄이 사라진다. 코드를 만들다가 if, else 를 사용하여 구분할때가 있다. 예를 들어 지금 만드는 코드는 신고를 할 때, 신고사유에 따라 나누는데 각 신고 사유는 반환할 것이 있다. 그래서 걱정이 없다. 이외에 신고사유는 들어올일이 없어서 안만들었지만 java에서는 만들어야한다. 앞서 말했던 것처럼 반환형이 필요하기 때문이다. 이처럼 else 에서 throw new 를 해주면 된다!! 보라색글씨의 POST_REPORT_REASON은 BaseRespon..

UMC🚀 2022.02.02

[intellij][spring] 여러 데이터를 한번에 반환하고 싶을 때

함수들의 반환타입들을 모아 한번에 반환하고 싶을 때는 어떻게 해야할까? 새롭게 Res파일을 만들어 인수로 넣어주면 된다! @Getter @Setter @AllArgsConstructor public class PostLetterPlantRes { private List receiveUserIdx; //전송한 유저idx들 private PatchModifyScoreRes patchModifyScoreRes; // 화분점수 변경 반환 } -> 이처럼 PostLetterPlantRes라는 파일을 만들어주어 변수(?)들을 넣고 싶은 파일들로 선언해주고 // Body에 json 파일 형식으로 넣음 @ResponseBody @PostMapping("") // POST 방식의 요청을 매핑하기 위한 어노테이션 publ..

UMC🚀 2022.02.01

[intellij][spring]화분점수를 변경하는 API를 만들며 에러가 난 이유분석

1. String 간의 비교 c++이 익숙한 나머지 string을 비교할 때 "=="으로 비교하여 계속 에러가 발생하였다. 자바에서 String을 비교할 때는 (신고의 이유에 따라 감소하는 화분의 점수가 달라지기 때문에 신고의 이유를 구분하기 위함이다) ReportReason.equals("hate") 이와 같이 "hate"와 ReportReason에 들어있는 String이 같은지 비교할 수 있다. 2. Dao 의 쿼리 문법 userIdx를 인수로 받기 때문에 이를 반환하는 함수를 Dao에서 만들어야했다. Dao의 쿼리를 만들면서 인수로 받은 Req의 값을 이용하였다. String selectQuery_diary = "SELECT Diary.userIdx FROM Diary WHERE diaryIdx=p..

UMC🚀 2022.01.30

[spring][IntelliJ] 500번 Internal Server Error 가 발생할때

어제 개발을 하면서 API를 하나 만들들고 postman으로 돌려봤을 때 500번 Internal Server Error가 발생하였다. 서버담당 선배님이 알려주셔서 고칠수있었다. resources -> application.yml 에서 url을 입력할때 url 형식은 jdbc:mysql://RDS의 EndPoint/내부 DB 스키마명 입니다. 이런 형식이 아닌 그저 RDS의 EndPoint 만 있었다. 형식에 맞추어 바꿔주니 에러가 사라지고 원하는 대로 API가 잘 동작하였다.

UMC🚀 2022.01.16