728x90
반응형
BackEnd
- [Spring JPA] ORM 그리고 Spring Data JPA ORM (Object Relational Mapping, 객체-관계 매핑) - 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 것을 말한다. ORM을 사용하면 DB를 몰라도 될까? - ORM을 이용할 때 어쨋든 영속성을 가진 객체는 DB에 저장된다. 테이블과 객체의 매핑을 하는 것이기 때문에 DB와 OOP를 모두 잘 알고 있어야 한다. ORM을 사용하는 이유는? - DB(SQL)를 직접 다루게 되면 코드의 반복이 발생하고, SQL에 의존적인 개발을 하게 된다. ORM DB 데이터 객체(클래스) 테이블 연관관계 속성(관계매핑) FK 혹은 Join Key ORM을 쓰면 좋은 점은? (1) 객체 지향적이기 때문에 개발자가 비지니스 로직 및 코드 자체에 집중할 수 있다. (2) 관념적 코드가 없거나 적..
- [Rest API] Spring JPA를 통한 CRUD 구현하기_SpringBoot 💡 PURPOSE 개인 프로젝트를 진행하려고 했으나 스스로 생각하기에 아직 api 작성에 대해 많이 부족한 것 같아 어디서부터 시작해야할 지 모르겠어서 일단 jpa에 대한 기초적인 지식을 쌓기 위해 공부한 것을 복습할 겸 포스팅해보겠다. 💡 STUDY LIST # Subject 2 : Spring JPA를 통한 CRUD 구현하기 1. 사용자 인증 (31~35) 2. 사용자 인증 (2) (36~42) 3. 사용자 인증 토큰 발행 (43~47) 4. 사용자 관리 (48~55) 5.사용자 관리 (2) 통계 (56~60) 💡 CONTENTS (31) 사용자 등록시 입력값이 유효하지 않은 경우 예외를 발생시키는 기능 입력값 이메일(ID), 이름, 비밀번호, 연락처 사용자 정의 에러 모델을 이용하여 에러를 리턴 /..
- [Rest API] 컨트롤러를 통한 게시판 기능 구현하기_SpringBoot 💡 PURPOSE 개인 프로젝트를 진행하려고 했으나 스스로 생각하기에 아직 api 작성에 대해 많이 부족한 것 같아 어디서부터 시작해야할 지 모르겠어서 일단 jpa에 대한 기초적인 지식을 쌓기 위해 공부한 것을 복습할 겸 포스팅해보겠다. 💡 STUDY LIST # Subject 1 : 컨트롤러를 통한 게시판 기능 구현하기 1. 주소요청에 대한 이해 2. 게시판 기본 목록 (6~10) 3. 게시글 작성 (11~15) 4.게시글 수정 (16~20) 5.게시글 삭제 (21~25) 6.게시판 추가기능 (26~30) 💡 CONTENTS (6) 공지사항 게시판의 목록에 대한 요청 처리 API 형식 : REST API HTTP METHOD : GET 요청 주소 : "/api/notice" return : 문자열 "공..
- 스프링 Swagger 오류 해결 - Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException 오류 발생 Spring boot에서 swagger를 사용하려고 build.gradle에 다음을 추가해줬다 dependencies { implementation 'io.springfox:springfox-swagger2:2.9.2' implementation 'io.springfox:springfox-swagger-ui:2.9.2' } 그런데 서버를 실행하니 발생하는 오류 Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException [전문] Error starting ApplicationContext. To display the conditions report re-run y..
- 스프링 프레임워크 자바의 겨울 서블릿, EJB - 동적인 웹사이트를 만들기 위한 다양한 도전들 EJB (Enterprise Java Beans) - 데이터 저장 수정 시 안정적, 트랜잭션 처리 Good, 믿을 수 있는 EJB - 매우 침투적인 코딩 (EJB 전용의 코드), 테스트가 어렵거나 불가능, 수행 속도가 너무 너무 느림 객체지향 프로그래밍(OOP)을 왜 하는지 -소프트웨어의 복잡성을 해결하고 관리할 수 있는 방법으로 제시된 것 중 가장 대중적이고 좋다고 알려진 방법 : OOP OOP를 잘하는 방법 SOLID - SOLID를 잘하는 방법 스프링 -
FrontEnd
JAVA
- JAVA 프로그래머스 [예산] 자바 Lv.1 [프로그래머스] 코딩테스트 연습 -> Summer/Winter Coding(~2018) -> 예산 https://school.programmers.co.kr/learn/courses/30/lessons/12982 해결 과정 일단 문제를 보았을 때는 어떻게 해결해야 하나 싶었다. 하지만 코드를 한 줄 한 줄 쓰다보니 단순하다는 것을 깨달았다. 먼저 Arrays.sort()로 배열을 정렬해야 한다. 정렬하게 되면 d 원소가 작은 순서대로 정렬되기 때문에 최대의 조건을 만족하게 된다. 먼저 예산의 합을 담을 hap 변수를 선언해주고, for문을 이용하여 hap에 원소를 누적하여 합해준다. 그러고 최대 부서를 나타낼 변수 answer에 +1을 해준다. (answer++) 다만 answer++을 실행하기 전에 i..
- JAVA 프로그래머스 [3진법 뒤집기] 자바 Lv.1 [프로그래머스] 코딩테스트 연습 -> 월간 코드 챌린지 시즌1 -> 3진법 뒤집기 https://school.programmers.co.kr/learn/courses/30/lessons/68935 해결 과정 두 개의 해결법을 찾았으므로 소스 코드와 함께 해결과정을 살펴보자. 소스 코드 (1) import java.util.*; class Solution { public int solution(int n) { int answer = 0; String ans = ""; while(n != 0) { ans += n%3; n /= 3; } // 3진수인 a를 10진수로 return Integer.parseInt(ans, 3); } } (2) import java.util.*; class Solution { pu..
- JAVA 프로그래머스 [같은 숫자는 싫어] 자바 Lv.1 [프로그래머스] 코딩테스트 연습 -> 스택/큐 -> 같은 숫자는 싫어 https://school.programmers.co.kr/learn/courses/30/lessons/12906 해결 과정 세 개의 해결법을 찾았으므로 소스 코드와 함께 해결과정을 살펴보자. 소스 코드 (1) List형을 int배열로 변환 import java.util.*; public class Solution { public int[] solution(int []arr) { List list = new ArrayList(); int tmp = -1; for (int i=0; i
- JAVA 프로그래머스 [최대공약수와 최소공배수] 자바 Lv.1 [프로그래머스] 코딩테스트 연습 -> 연습문제 -> 최대공약수와 최소공배 https://school.programmers.co.kr/learn/courses/30/lessons/12940 해결 과정 항상 고민하게 되는 최대공약수와 최소공배수 문제이다. 소스 코드
- JAVA 프로그래머스 [직사각형 별찍기] 자바 Lv.1 [프로그래머스] 코딩테스트 연습 -> 연습문제 -> 직사각형 별찍기 https://school.programmers.co.kr/learn/courses/30/lessons/12969 해결 과정 코딩테스트를 처음 접했을 때 많이 풀었던 별 찍기 문제이다. 단순히 이중 for문을 사용하여 풀면 되는데, 한 줄을 n만큼 다 찍고 나면 println() 을 사용하여 줄바꿈을 해주면 된다. 소스 코드 import java.util.Scanner; class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); for (int i=0..
넥슨 PROJECT MOD
- MOD 서포터즈 해커톤 회고 / 메이플스토리 월드 슈퍼 해커톤 모집 ✅ MOD 서포터즈 해커톤 시작 2022년 7월 4일 서포터즈 발대식(OT)를 시작으로 본격적인 서포터즈 해커톤이 시작되었다 4명이 한 팀이 되어 팀당 1개의 MOD 내 게임 콘텐츠를 제작하는 것이 서포터즈 해커톤의 목표이다 총 25팀이 서포터즈 해커톤에 참여하였다 사실 나는 2022년 5월부터 MOD 운영진으로 합류하였다 (MOD 운영진 : 서포터즈 해커톤 전에 미리 선발된 Leader그룹) MOD 운영진들은 서포터즈 해커톤 때 PGL로 활동할 수 있는 자격이 부여되었다 운영진일 때 매주 썼었던 WIL(Weekly I Learned) 목록이다 중간에 조코딩님과의 만남 시간도 있었고, 멋사 측에서 커피 쿠폰도 제공해주셨다 (이 때, 4학년 1학기 학교 수업과 병행한 지라 MOD에 많은 시간 투자를 하지 ..
- 메이플스토리 월드_응용_인내의 숲 만들기 - 메이플스토리월드 응용 제작 가이드 무작정 따라하기 - ( https://mod-developers.nexon.com/ko/docs/?postId=464 ) ✅ 1.게임 제작의 시작 이론하고 실습 공부하면서 이 화면만 50번 이상은 본 것 같다 새로 만들기 무한 굴레 초기 시작 화면이다 이것도 많이 봤다 ✅ 2. 배경 꾸미기 Model List -> Background 에서 back-56 선택 ✅ 3. 타일 배치하기 Model List -> tile 에서 tile-132 선택 타일을 선택한 상태에서 Scene 어느 부분을 클릭하면, 클릭한 위치에 타일이 배치된다 클릭한 상태로 드래그하면, 드래그 한 부분에 타일이 연속적으로 배치된다 선 칠하기 일 때는, 일자로 드래그 한다고 해도 얘가 좀 민감해서 타일..
- [Remind] 멋쟁이사자처럼 X 넥슨 Project MOD Supporters Hackathon_ch.11/12 Project MOD Supporters Hackathon_ch.11/12 Basic Class - 11. UI에디터의 이해 UI는 유저와 클라리언트가 소통을 할 수 있는 매개체 UI 에디터 전환 상단 메뉴에서 UI 버튼을 눌러 UI 에디터로 전환 -> 플레이 화면에 노출 시킬 수 있는 UI 엔티티들이 Scene에 보임 UI 에디터 소개 번호 이름 설명 1 모델 리스트 메이커에서 제공하는 다양한 UI Preset을 활용할 수 있습니다. 2 UI 경로 정보 선택된 UI 엔티티의 경로 정보를 알 수 있습니다. 상위(부모) 경로 선택 시 해당 엔티티가 선택됩니다. 3 캔버스 UI엔티티를 배치하고 편집하는 작업 공간 입니다. 게임 실행 시 캔버스에 배치된 모습대로 게임 화면에 출력됩니다. 4 기본 도구 이미지나..
- [Remind] 멋쟁이사자처럼 X 넥슨 Project MOD Supporters Hackathon_ch.9/10 Project MOD Supporters Hackathon_ch.9/10 Basic Class - 9. 컴포넌트의 활용 1 ✅ MovementComponent : 캐릭터의 움직임에 관여하는 컴포넌트 InputSpeed : 이동 속도를 조절하는 프로퍼티 (X축 기준) JumpForce : 점프력을 조절하는 프로퍼티 (Y축 기준) ✅ RigidbodyComponent :기본적인 물리 움직임을 조정하는 속성을 가진 컴포넌트 일반적인 세계에서 영향을 받는 움직임을 따라가는 컴포넌트로, 지형의 특성과 레이어에 따라 다른 움직임 적용 가능 DownJumpSpeed : 하단 점프 속도 조정 속성 Gravity : 중력값. 점프를 했을 때 떨어지는 속도 조정 속성 IsBlockVerticalLine : 활성화 시 기둥..
- [Remind] 멋쟁이사자처럼 X 넥슨 Project MOD Supporters Hackathon_ch.7/8 Project MOD Supporters Hackathon_ch.7/8 Basic Class - 7. 네트워크의 이해 MOD는 네트워킹 지원, 멀티플레이 지원 게임 MOD는 서버-클라이언트 모델 사용 서버와 클라이언트 클라이언트 : 게임을 플레이하는 유저들의 모바일이나 PC, 또는 해당 기기에사 개별적으로 돌아가는 프로그램 유저의 입력을 처리하거나, 서버가 보내온 정보를 내부적으로 처리하여 유저에게 가시적으로 출력하는 역할을 수행 서버 : 각 클라이언트에서 보내온 요청에 대한 응답을 주기도 하지만, 게임 진행에 대한 주요 기능과 시스템을 서버에 구축함으로써 모든 클라이언트가 동일한 진행 상황이 될 수 있도록 할 수 있음 서버와 클라이언트의 관계 서버 - 클라이언트 모델에서, 클라이언트는 다른 클라이언트와..
- [Remind] 멋쟁이사자처럼 X 넥슨 Project MOD Supporters Hackathon_ch.4/5/6 Project MOD Supporters Hackathon_ch.4/5/6 레이어별로 하나의 타일만 사용 가능 TileMapComponent Color : 타일맵의 색상 지정 TileSetRUID : 타일맵에서 사용할 타일셋 리소스의 RUID 지정 Color : 타일맵의 색상 지정 Foothold ~ : 발판 정보 File -> Setting -> 만들기 -> 발판정보 ✅ : 발판의 정보 확인 가능 Model List 중 Foothold : Foothold 정보를 이미 포함한 Entity Edit Foothold를 통해 수정 가능 수정 후 Exit Edit Foothold를 통해 저장 FootholdDrag : 이 타일맵 위에 있는 캐릭터의 마찰력 변화 (값이 크면 더 빠르게 감속) FootholdFor..
- [Remind] 멋쟁이사자처럼 X 넥슨 Project MOD Supporters Hackathon_ch.1/2/3 Project MOD Supporters Hackathon_ch.1/2/3 Basic Class - 1. 기본의 이해 MOD : 넥슨에서 제공하는 메타버스 기반 게임 제작 프로그램 누구나 자유롭게 컨텐츠를 제작하는 플랫폼을 목표로 하는 넥슨의 신규 프로젝트로 메이플 스토리를 포함한 그 외 IP 사용을 통해 어떤 클라이언트든 상관 없이 변형 게임을 제작할 수 있는 UCC 소프트웨어 MOD 클라이언트 메뉴 - File - 한 서버 당 최대 플레이어 수, 플레이 가능 여부, 리메이크 허용, 플레이 가능 기기 등 설정 publish : MOD상에 내 게임 출시하는 것. save: 저장하는 즉시 서버에 저장. (로컬에 따로 저장되지 않는다) export to file: 파일로 게임 내보내기 revisions: 버..
- [Remind] 멋쟁이사자처럼 X 넥슨 Project MOD Supporters Hackathon_start Project MOD Supporters Hackathon_start [MAKE YOUR OWN WORLD] PGL로 다시 시작하는 [멋쟁이사자처럼 X 넥슨] Project MOD Supporters Hackathon 시작 ! 기존 운영진들은 PGL(Peer Group Leader)이 되고, 새롭게 선발된 서포터즈들과 4명씩 팀을 이루어 정식으로 시작하는 서포터즈 해커톤이다 기존 운영진 + 새로운 서포터즈 = 총 100명이 함께한다 우리 팀명은 [구공플스토리] 99년생 두명과 00년생 두명, 그리고 메이플스토리를 합쳐서 이렇게 작명하게 되었다 나는 PGL 그리고 팀원은 은비,지은,성현이다 해커톤 일정은 대략 이러하다 7/4 : 발대식 (OT) 7/5 ~ 7/29 : 팀빌딩 → 피어그룹 스터디 + 아이디어..
- PROJECT MOD X LIKELION PARTNERSHIP 체결 넥슨 프로젝트 MOD, ‘멋쟁이사자처럼’과 교육 파트너십 체결 넥슨 프로젝트 MOD, ‘멋쟁이사자처럼’과 교육 파트너십 체결 프로젝트 MOD 기반 콘텐트 제작 위한 각종 교육 프로그램 운영 협업 economist.co.kr 넥슨은 ‘프로젝트 MOD’의 첫 번째 공식 교육 파트너로, 글로벌 프로그래밍 교육 브랜드 ‘멋쟁이사자처럼’과 손을 잡았다고 28일 밝혔다. 프로젝트 MOD는 자사 인기 IP인 ‘메이플스토리’를 활용한 차세대 콘텐트 제작의 방대한 리소스 및 UGC를 활용한 자유도 높은 차세대 콘텐트 제작 플랫폼으로 PC와 모바일 디바이스를 넘나들며 콘텐트 제작이 가능하다. 이번 파트너십을 통해 양사는 대학생 대상으로 프로젝트 MOD 기반 콘텐트 제작을 활성화하기 위한 다양한 협업 프로그램을 진행할 계획..
- 멋쟁이사자처럼 X 넥슨 MOD Supporters Hackathon 7주차 회고 만들기 -> 새로만들기 -> 꾸미기 1) 플랫포머 : 점프 & 런 액션 월드 만들기 2) RPG : 나만의 스토리를 담은 RPG 만들기 3) PVP : 나만의 스킬을 제작하고 PVP월드 만들기 이 세개의 기능은 스크립트를 이용하기 버거운 사용자들도 손쉽게 컨텐츠를 제작 할 수 있도록 하게 해주는 좋은 기능인 것 같다 그래픽 형태로 여러 기능들을 추가하고 생성할 수 있어서 누구든 흥미로울 듯 UI를 보면서 약간 고전적인 느낌이 자꾸 들어서 참 적응 안되고 귀엽다고 생각했는데 보다보니까 친해지는 것 같고 생각보다 프로그램이 잘 짜여져 있어서 대단하다고 느낌 7주차 완강 소감 MOD 서포터즈보다 초기에 우선 선발한 MOD 운영진으로 시작하게 된 PROJECT MOD 학교수업과 병행하며 진행하는 바람에 초반에는..
- 멋쟁이사자처럼 X 넥슨 MOD Supporters Hackathon 6주차 회고 [MOD 강좌 Chapter 11] UI에디터의 이해 UI는 유저와 클라리언트가 소통을 할 수 있는 매개체 UI 에디터 전환 상단 메뉴에서 UI 버튼을 눌러 UI 에디터로 전환 -> 플레이 화면에 노출 시킬 수 있는 UI 엔티티들이 Scene에 보임 UI 에디터 소개 번호 이름 설명 1 모델 리스트 메이커에서 제공하는 다양한 UI Preset을 활용할 수 있습니다. 2 UI 경로 정보 선택된 UI 엔티티의 경로 정보를 알 수 있습니다. 상위(부모) 경로 선택 시 해당 엔티티가 선택됩니다. 3 캔버스 UI엔티티를 배치하고 편집하는 작업 공간 입니다. 게임 실행 시 캔버스에 배치된 모습대로 게임 화면에 출력됩니다. 4 기본 도구 이미지나 버튼과 같은 UI 엔티티를 배치할 수 있습니다. 5 UI Group 편..
- 멋쟁이사자처럼 X 넥슨 MOD Supporters Hackathon 5주차 회고 [MOD 강좌 Chapter 9] 컴포넌트의 활용1 충돌 : 충돌체를 포함하고 있는 엔티티의 충돌 영역이 서로 교차했을 때 충돌체는 TriggerComponent 또는 HitComponent와 같은 컴포넌트를 엔티티에 추가하면 자동으로 생성 HitComponent는 피격의 범위를 설정할 때, TriggerComponent는 충돌이 일어나는 범위를 설정할 때에 충돌체를 사용 ColliderOffset, BoxSize, CircleRadius 등의 프로퍼티로 충돌체의 속성 설정 가능 충돌체 크기, 위치 편집 세부적인 충돌체의 크기, 위치, 형태 등은 충돌체를 지닌 컴포넌트의 프로퍼티를 통해 설정 TriggerComponent나 HitComponent와 같이 충돌체를 지닌 컴포넌트에서 공통으로 제공되는 프로퍼..
- 멋쟁이사자처럼 X 넥슨 MOD Supporters Hackathon 4주차 회고 [MOD 강좌 Chapter 8] Event와 컴포넌트 확장 Event 기반의 로직 구성 로직을 작성하다 보면 어떤 상태가 변하거나 어떤 액션이 있거나 특정 일이 주어졌을 때, 즉 특정 타이밍에 "무언가를" 해야 할 일이 생김. 그럴 경우 "행위가 일어난 주체"에서 무얼 할 것인지 결정해야 함 결국 이벤트 시스템과 일반 로직의 차이는 "행위가 일어난 주체"에서 일을 처리할 것인지, "행동을 실행해야 할 주체"에서 일을 처리할 것인지에 대한 차이 Event System의 구성 (3가지) 1. Event : 로직 상에서 어떤 사건의 발생 Event의 종류의 식별 정보 및 추가 정보 등을 들고 있는 자료형 2. Handler : 해당 Event를 받았을 때 처리하는 행동의 주체 해당 이벤트가 불렸을 때 불리는..
- 멋쟁이사자처럼 X 넥슨 MOD Supporters Hackathon 3주차 회고 [MOD 강좌 Chapter 6] 스크립트의 이해 기본적인 언어인 Luascript + mod의 추가적인 문법 결합 Create Component Create EventType Create ItemType Create BTNodeType Create Logic Create Script Create Script 변수 local number = 1 number = 10 반복문 for count = 1, 10, 1 do log(count) end 합계 구하기 local sum = 0 for count = 1, 10, 1 do sum = sum + count end log(sum) 조건문 local sum = 0 for count = 1, 10, 1 do if count % 2 == 0 then sum = su..
- 멋쟁이사자처럼 X 넥슨 MOD Supporters Hackathon 2주차 회고 [MOD 강좌 Chapter 3] 기본 컴포넌트의 이해 ▶ 컴포넌트 소개 TransformComponent Position : Entity의 좌표 (상대 좌표) 자식의 Position은 부모 기준의 상대 Position 부모-자식 관계가 생성되거나 사라지면, Position은 자동으로 갱신 Scale : Entity의 크기 1이 기준, 2는 두배, 3은 3배이다 가로 세로 별도로 크기 변경 가능 World Position : 월드 기준의 좌표 (절대 좌표) 자식의 World Position = 자식의 Position + 부모의 Position WorldZRotation : 월드 기준의 회전 값 (절대 값) ZRotation : Object의 상대 회전 값 (상대 값) SpriteRendererCompon..
- 멋쟁이사자처럼 X 넥슨 MOD Supporters Hackathon 1주차 회고 [MOD 강좌 Chapter 1] 기본의 이해 MOD 실행해보기 우선 MOD실행하자마자 내 캐릭터 커스텀하기 캐시 많아서 좋다 ㅎㅎ 홈화면. 내가 최근 플레이한 게임과 제작 월드 등등 이미 제작된 컨텐츠들이 있는 화면. 정말 많다. 워크스페이스 소개 Model list - Recet Mode - Backgroud - Solid Background - Image Background - Tile - Object - Monster - NPC - Foothold - Ladder - Rope - Portal - Trap - BGM - Item - Special Model - CloneModel - UI Preset *새 그룹 추가 : 내가 자주쓰는 모델 모아두기 가능 Property 객체에 각종 속성 추가 가능 ..
728x90
반응형