Giter VIP home page Giter VIP logo

mud-mini-game's Introduction

👋 Introduction

Hi there! I'm BEMELON, computer engineering graduate with a keen interest in backend engineering. I thrive on challenges, particularly those that expand my knowledge and involve innovative uses of technology to solve practical problems.

🔍 Interested In

I am actively looking to engage with projects involving:

  • Kotlin Ecosystem: I'm currently immersed in learning Kotlin, a statically typed language that offers the flexibility of Python. I resonate with the diverse ecosystem Kotlin fosters and am eager to participate in various projects within this space.
  • Obsidian: I'm inspired by Obsidian's philosophy and am actively using it to develop my own wiki. I have a keen interest in the plugin ecosystem and am looking for projects to get involved with.

💼 Experience

2024.05 - CURRENT Backend Engineer

2024.01 - 2024.03 Backend Engineer Intern

  • Technologies Used: Nest.js, TypeORM, Typescript, MySQL
  • Project Involvement: Participated in the initial phases of a new project, utilizing my knowledge of NestJs to set up robust backend services.
  • Learning and Development: Engaged in my first TypeScript project and enhanced my backend skills by studying the book Modern-Javascript-Deep-Dive, which provided a deep dive into advanced JavaScript concepts.

2022.03 - 2022.06 Backend Engineer CO-OP

  • Technologies Used: Python, SqlAlchemy
  • First development internship, where I developed features and resolved various bugs in a Python-based service.
  • Gained substantial knowledge about Agile methodologies, which significantly contributed to my growth as a developer.

🎓 Education

2017.03 - 2024.02 B.S. in Computer Engineering

  • Teaching Assistant for System Programming and Artificial Intelligence courses.
  • Member of the Robotics Club, RATS.

📚 Projects

2023.05 - 2024.05, Backend Engineer

  • Technologies Used: Python, Scrapy, SqlAlchemy, ScrapyOps, AWS, LangChain/LangSmith, Postgresql, Linear
  • Conducted reverse engineering to devise a scraping strategy for used-item marketplaces like 중고나라, 번개장터, and 당근마켓.
  • Developed a data pipeline using LangChain to categorize detailed specifications of MacBooks from various sellers' descriptions.

2023.01 - 2023.03 Backend Engineer

  • Technologies Used: Java, Spring Boot, MySQL, AWS, JUnit, Notion
  • Focused on rigorous test development throughout the project.
  • Implemented social login and JWT-based authentication management with Google, Apple, and Kakao.

MJU BUS

2021.09 - 2023.06 Backend Engineer

  • Technologies Used: Java, Spring Boot, MySQL, Spring Scheduler, AWS, Jira
  • Utilized reverse engineering to database shuttle bus routes and the latitude/longitude of stops.
  • Developed an algorithm to predict the shuttle bus's location based on departure times, without GPS.
  • Operated the system for about 2 years, focusing on minimizing operational costs.

🌟 Additional Activities

2023.05 - 2023.11 14th

2022.01 - 2022.11 Cadet

mud-mini-game's People

Contributors

bemelon avatar

Stargazers

 avatar

Watchers

 avatar

mud-mini-game's Issues

User 도메인의 기능 구현

  • 유저 로그인/회원가입
    • 유저 생성시 Random한 좌표 부여
    • 유저 생성시 Session 5분간 유지되도록 설정
    • 유저 생성시 hp(30), str(3), hp-posion(1), str-posion(1) 부여
  • 유저 이동
  • 유저 공격 : 공격시 현 좌표 기준 [-1, -1] ~ [1 , 1] 까지 공격을 시도
    • 슬라임 도메인
  • 유저 포션 사용
    • Hp 포션
    • Str 포션
  • 유저 접속종료시 무적 처리
  • 유저 채팅
    • 유저 alive 패킷
  • 유저 동시접속시 중복 로그인 처리 및 기존 접속 종료
  • 유저 Session Update

Socket이 json 을 주고 받을 수 있도록 설정

  • Server
    • rapidJSON 의존성 설정
    • TCP Socket을 통해 Json 포맷의 데이터를 R/W 할 수 있는 기능
  • Client
    • rapidJSON 의존성 설정
    • TCP Socket을 통해 Json 포맷의 데이터를 R/W 할 수 있는 기능

User의 Timeout 을 설정한다.

제한시간은 300초이며,

  • 행동이 있는 경우 타임아웃을 300초로 업데이트한다.
  • 300초가 지난 경우 유저를 삭제한다.

Server Refactoring

MVC 패턴으로 리팩토링

Model : Redis 와의 연결 핸들링

View : 유저의 입력

  • Client

Controller : 라우팅

  • Resetful API Router
  • TCP Socket JSON Router

Service : 서버 핵심 로직 구현

Event : Socket, Restful API 초반부

가변매개변수를 간접 전달하기

AS-IS

  • redisCommand 메소드에 들어가는 가변 매개변수를 일일히 전달 후 redisReplystatic_cast 를 진행해야 함.
  • IDataRepository에서 구체화된 redisContext 를 가지고 있음

TO-BE

  • CMD의 추상 클래스를 통하여 IDatarepositoryreidsContext를 가지고 있지 않게 설계
  • 이를 위해 CMD는 가변 매개변수를 받아 이를 redisCommand로 전달해줘야 함.

테스트코드

클라이언트와 서버에 대한 유닛테스트 코드 작성
Google-Test

할 수 있을까?

  • Google-Test 의존성 추가
  • TearDown, TearUp 의존성 추가

[JSON] 통신 규약 설정

ClientServer 통신시 상호간 약속 설정하기

request

  • COMMON

    • Request URL : {url}
  • move {x} {y}

    • x : {x}
    • y : {y}
  • attack:

  • users

  • chat {user_name} {content}

    • msg_to : {user_name}
    • msg_content : {content}
  • bot

  • potion

    • type : {hp | str }

response

  • COMMON
    • status : {success | fail}
      추후 결정

Init project

서버와 클라이언트의 기본적인 코드 구조를 초기화한다.

  • SERVER

    • Socket Listener
  • Client

    • Socket Sender
  • CMAKE, Makefile

Basic 도메인 생성

User

  • id
  • x, y
  • hp
  • str
  • hp-posion
  • mp-posion

슬라임

  • id (1 ~ 10)
  • hp
  • str
  • hp-posion
  • str-potion

포션

hp 포션

mp 포션

stk 포션

  • action

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.