한달 휴강 끝나고 다시 수업이 들어가면서 과제가 주어졌다.
하루에 하나씩 간단한 거 주는듯?
협업환경 세팅하고(노션, 깃, 슬랙) 스프링 깔기만 했는데 이틀이 삭제되어버린 건 개인적으로 무척 아쉽다..
한 달 휴강을 해서인지 마음이 급해서 그런듯ㅠㅠ
스프링으로 서버 만들고 주사위를 화면에 출력하는 과제를 받았다.
그치만 주사위를 만들어본 적이 없는뎅..?ㅋㅋ
서치해서 찾은 주사위 메소드를 대충 갖다붙였더니 된다.
package com.example.homework.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.function.IntSupplier;
@RestController
public class HW_RestController {
@GetMapping("/homework1")
public int dice() {
IntSupplier intSupplier = () -> {
int num =(int) (Math.random()*6) + 1;
return num;
};
int num = intSupplier.getAsInt();
return num;
}
}
IntSupplier 클래스 처음 보는데 걍 갖다붙임..ㅋㅋ
람다도 배웠는데 기억이 안 나네..? 인스턴스를 저런식으로도 만드나?
(int) (Math.random()*n) +1 하면 1 ~ n까지의 숫자가 랜덤하게 나오는 원리가 한순간 이해가 안됨.ㅠ
1~6까지의 숫자를 랜덤하게 나오게 하려면 왜 Math.random() 에 6을 곱하고 1을 더해야 하는가?
Math.random()은 0과 1 사이의 숫자를 랜덤으로 뱉음.
0 < Math.random() < 1 이니까 6을 곱하면
0*0 < Math.random()*6 < 1*6, 즉 0부터 5.9999.....의 숫자가 나온다.
int형으로 캐스팅하면 소수점 이하 날아가니까 0 ~ 5 중에 하나가 나온다.
여기에 1을 더해주면 1 ~ 6 사이의 수가 랜덤하게 나오게 되는 것이다!
내가 나중에 또 까먹을까봐 이해한 김에 정리해봄ㅎ
그렇다면 IntSupplier 클래스는 뭐냐..?
javadoc 가보니까 클래스 아니고 인터페이스란다..ㅎ... 뭐지..?
아직 javadoc을 읽기는 힘들어..ㅠ..
이것은 함수적 인터페이스이고...하..파파고...help..
아 ㅇㅋ 대충 이해했어ㅋ 근데 걍 복붙을 해왔기 때문에 이것만 봐서는 왜 쓰는지 알수가 없다.ㅠ
근데 dice 메소드 부분을
public int dice() {
int num =(int) (Math.random()*6) + 1;
return num;
}
이렇게만 고쳐도 똑같이 나왔다.
??
당연하긴 한데?ㅋㅋ
얏호 과제끝!!
커밋 푸쉬 하려니까 intellij 가 num 쓸데없는데 왜쓰냐 그래서 지움;; ㅠㅠ,,,
진짜 최종
public int dice() {
return (int) (Math.random()*6) + 1;
}
그런데 커밋 푸쉬 잘못해서 github에 푸쉬한 거 날리려는데 어케 하는 지 모르겠다.
하 결국 지우고 다시 했다..ㅋㅋㅋ
git log로 커밋 내역 확인
git reset HEAD^ 명령어로 가장 최근 커밋 내역 삭제(잘못 올린게 가장 최근 아니고 전전거라 두번...ㅠ)
git add ./ 치고
git commit -am "커밋 메시지" 치고
git push origin main 치니까 reject 당하고..(failed to push some refs to ... 에러)
git push -f origin 하니까 갑자기 됐다!!
ㅠㅠㅠ....
이러고 커밋메시지 제출형식 틀려서 깃헙에서 수정..헤...
아무튼..해결...!
하..이거 한 3시간 붙잡고 있었던 거 같다ㅋ..ㅎ...ㅎ...
'국비지원 > 시즌2' 카테고리의 다른 글
vue.js로 간단한 rpg 게임 만들기(국비 웹개발 44일차) (0) | 2022.08.30 |
---|---|
Vue.js 기초를 배우는 중: 국비 웹개발 과정 41일차 (0) | 2022.08.25 |
7차 과제: 로또게임 예제코드 & 애자일보드 비교분석 (0) | 2022.08.20 |
다시 자바 복습.. (0) | 2022.08.19 |
과제 3: 학생들 점수를 임의로 배치하고 평균값 구하기. (0) | 2022.07.22 |