본문 바로가기

분류 전체보기163

[자바 리플렉션] 3. 리플렉션한 함수에 파라메터 분석하기 본격 자기계발 레벨업 프로젝트! 유튜브 메타코딩 영상을 보면서 공부 했던것을 정리하고자 합니다. IDE : STS4 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 로그인, 회원가입등 기능을 작성하기 위해선 MVC패턴에서 Model 을 작성해서 어떠한 것들을 받아서 어떻게 활용할 건지 만들기 위해서 model 패키지를 작성 후 user 클래스를 만들어준다. user 클래스에는 사용자들별 고유 id, 사용자의 아이디, 비밀번호, 이메일만 작성해서 테스트하기로 한다. 변수를 작성 해준 후 getter / setter 와 toString를 만들어준다. 하지만 생각해볼 때 회원가입을 할 땐 아이디/비밀번호/이메일을 다 .. 2023. 8. 12.
[자바 리플렉션] 2. dispatcher 필터로 주소 매핑하기 본격 자기계발 레벨업 프로젝트! 유튜브 메타코딩 영상을 보면서 공부 했던것을 정리하고자 합니다. IDE : STS4 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 기존에 한개의 함수에 대응하는 if문을 작성해야 하는 방식 말고 userController에 함수가 추가 되더라도 해당 컨트롤러가 가진 함수를 배열로 저장한 후 이용한다면 더 간편하게 관리할 수 있지 않을까? 진행해보자 기존 방식은 함수가 한개 추가 될 때마다 계속 해당 함수를 불러오기 위해서 해당 엔드포인트를 추가해서 사용해주어야 했다. 해당 클래스가 가지고 있는 모든 함수들을 method배열에 저장해서 for문을 이용해 출력해보자 그러면 콘솔에 u.. 2023. 8. 11.
[자바 리플렉션] 1. 리플렉션을 왜 사용해야할까? 본격 자기계발 레벨업 프로젝트! 유튜브 메타코딩 영상을 보면서 공부 했던것을 정리하고자 합니다. IDE : STS4 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 리플렉션을 왜 사용해야할까 ? 그 이유에 대해서 사용하지 않는다면 어떻게 우리가 코드를 작성하는지 한번 알아보자 우선 패키지를 생성 한 후 dispatcher 라는 클래스명으로 클래스를 생성해준다. dispatcher 클래스를 생성하면 Filter 클래스를 상속받아준다. 그 후 filter 클래스가 가지고 있는 메서드를 오버라이드 해준다. 잘 작동하는지 확인해보기 위해 콘솔에 찍어보면 잘 동작하는걸 확인할 수 있다. 요청받은 주소를 확인해보기 위해 매.. 2023. 8. 11.
[자바 리플렉션] 0. 환경설정(+ dynamic web project가 안보일때 해결법) 본격 자기계발 레벨업 프로젝트! 유튜브 메타코딩 영상을 보면서 공부 했던것을 정리하고자 합니다. IDE : STS4 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 환경설정을 위해서 workspace를 새로 만들어준다. file -> switch workspace -> other로 들어가서 원하는 workspace 명으로 생성을 해준다. workspace 생성 후 프로젝트를 만들어 줘야하는데 new -> other -> dynamic web project를 검색해주면 된다. 그런데 dynamic web project를 검색해도 보이지 않는 경우가 있다. help -> Eclipse Marketplace로 이동한다.. 2023. 8. 10.
[버블버블게임만들기] 12. 버블을 벽에 감지하기 유튜브에서 예전부터 해보고싶던 버블버블게임만들기 프로젝트를 클론코딩해보며 진행사항을 기록하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 버블들을 캐릭터가 쏘았을 때 벽을 감지해서 충돌한다면 멈추고 바로 위로 올라가도록 진행 해보자 backgroundPlayerService를 복사해서 backgroundBubbleService를 생성 불필요한 부분들은 제외하고 아래와 같이 코드를 남겨주면 된다. public class BackgroundBubbleService { private BufferedImage image; private Bubble bubble; public Bac.. 2023. 8. 6.
[버블버블게임만들기] 11. 버블 발사하기(2) 유튜브에서 예전부터 해보고싶던 버블버블게임만들기 프로젝트를 클론코딩해보며 진행사항을 기록하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 지난 포스팅에서 버블의 위치를 잡아주는 작업을 했으니 이번엔 실제로 버블이 나가는 과정을 작성해보자 bubble 클래스에서 initThread 메서드를 추가해준다. 캐릭터의 방향이 왼쪽이라면 왼쪽으로 그외 상황이라면 오른쪽으로 버블이 이동하게 작성해준다. private void initThread(){ new Thread(()->{ if(player.getPlayerDirection() == PlayerDirection.LEFT){ lef.. 2023. 8. 5.
[버블버블게임만들기] 10. 버블 발사하기(1) 유튜브에서 예전부터 해보고싶던 버블버블게임만들기 프로젝트를 클론코딩해보며 진행사항을 기록하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 버블을 생성해주고 이제 그 버블이 발사가 되어야 하는데 캐릭터가 보는 방향에 따라서 방향이 결정되어야 한다. PlayerDirection이라는 이름의 enum 클래스를 생성해준다. 연관된 상수를 관리해주는 클래스로 캐릭터의 방향인 left와, right를 상수이므로 대문자로 작성해준다. player 클래스로 이동해서 playerDirection을 컴포지션해준다. InitSetting메서드로 가서 기본 방향은 캐릭터의 기본 방향인 오른쪽으로.. 2023. 8. 5.
[버블버블게임만들기] 9. 버블 만들어주기 유튜브에서 예전부터 해보고싶던 버블버블게임만들기 프로젝트를 클론코딩해보며 진행사항을 기록하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 캐릭터와 마찬가지로 이 게임에서 매우 중요한 버블을 만들어보자 Bubble 클래스를 생성 player 에 있는 변수들을 가지고와서 아래와 같이 살짝 수정해준다. // 위치 상태 private int x; private int y; // 움직임상태 private boolean left; private boolean right; private boolean up; // 적군을 맞춘 상태 private int state; // 0(물방울), 1.. 2023. 8. 4.
[버블버블게임만들기] 8. 발판이 없는 공간에서의 캐릭터 하강 유튜브에서 예전부터 해보고싶던 버블버블게임만들기 프로젝트를 클론코딩해보며 진행사항을 기록하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 캐릭터가 점프를 했을 때 발판에 올라가게 했지만, 발판이 없는 빈공간에도 그대로 있는 부분을 수정하고자 한다. player 클래스에 down 메서드에 조건문을 추가해서 캐릭터가 down 상태가 아닐때 해당 메서드가 동작하도록한다. 그러면 모든 상황에서 캐릭터가 down 상태가 아니므로 캐릭터가 계속 추락하게 될 것이다. backgroundPlayerService 클래스에서 조건을 추가해서 캐릭터가 up이 아닌상태에서 down 메서드가 동작.. 2023. 8. 4.
[버블버블게임만들기] 7. 점프 후 캐릭터 발판에 착지 시키기 유튜브에서 예전부터 해보고싶던 버블버블게임만들기 프로젝트를 클론코딩해보며 진행사항을 기록하고자 한다. IDE : IntelliJ 언어 : Java 8 스프링부트 버전 : 2.7.13 DB : MySQL 빌드관리 도구 : Maven OS : iOS 참고유튜브 : 메타코딩 캐릭터가 벽을 통과하지 못하게 했으니 이제 비슷한 방법으로 점프를 했을때 발판이 있다면 해당 부분에서 캐릭터의 좌표를 멈춰서 발판에 올라가게 만들어보자. 캐릭터가 위치한 부분을 알아보기 위해서 bottomColor 라는 변수 명으로 캐릭터가 위치한 x.y 좌표를 색상으로 알아보자 int bottomColor = image.getRGB(player.getX()+10, player.getY()+50+5); System.out.println(".. 2023. 8. 2.