201208_JP_개찰구 프로젝트

정재현·2020년 12월 8일
0

TIL

목록 보기
8/80

개요: 가위바위보와 몬스터 프로젝트를 진행하는 것을 보시던 실장님께서 이건 안드로이드 앱 개발과 더 관련이 있지 자바를 언어적으로 써볼수있는건 아닌것 같다고 판단하시고 과제를 주심.

마침 나도 '이건 자바가 아니라 앱 개발같은데..' 라고 생각하며 '그래도 끝까지 진행이나 해보자' 라는 생각중이였음.
포켓몬 애들아 내가 나중에 더 이쁘게 만들어줄게 나중에보자

그래서 실장님께서 컨셉을 말해줄터이니 기능이라던가 살을 붙일 수 있으면 붙여서 개발을 해보면 된다고 하셨다.

이때 나는 완성은 물론이고 내가 여기다가 무조건 살 붙인다는 생각을 바로 했는데
살 붙이는 건 예외적인 상황을 설정할 생각이다. ex) 지하철 연착, 개찰구 고장 등등..

주제: 한줄요약하자면 [시간대 별로 다른 유동인구에 효율적인 개찰구 컨트롤 서비스] 이다.
신기한게 지하철역의 개찰구는 시간마다 다르게 컨트롤된다고 한다.
(판교역 알고리즘 누가짠거임 다시짜야할듯)

처음엔 최대한 고정할 수 있는건 고정해보라고 하셔서(그래야 난이도가 쉬워질듯)
고정할 애들을 지정해봤다:
- 분(minute) 유동인구
- 개찰구 개수
- 그래프
- 지하철 도착시간 5분 (00:00~23:55)

배울수있는점: 멀티쓰레딩, 개수 변화에 대한 알고리즘, 프로젝트 일정관리, git의 제대로된 사용법 등등..
#멀티쓰레딩이 뭔지, 개수 변화에 대한 알고리즘이 뭔지 알아봐야 함.

오늘의 코멘트: 퇴근하고 집가서 샤워하는데 문득 이런 생각이 들었다. '혹시 back-end 단에서 서버 개발 및 관리를 이런식으로 하나..? 유동인구, 개찰구는 유저수와 트래픽과 관련이 있지않을까..? 서버는 가장 효율적으로 관리되어야 하니깐' 과 동시에 '이래서 서버 개발자가 연봉이 높은건가..?' 싶었다 ㅋㅋ

==> #동시에 '어 그럼 서버개발을 어떤식으로 하는지 간단하게라도 알아보면 진짜 효율적인게 뭔지 알수있지 않을까' 싶었다.

#생각해볼점:

  • 어떻게 해야 베스트인걸까?:
    뭐가 기준이 되어야 할까? 어라? 근데 왜 sleep과 wait을 보시고는 이런 과제를 내주셨을까? => 이거를 이용하라는 말씀이지 않을까? 중간에 멀티쓰레딩 얘기를 하신거보면 아마 wait일거같은데..?
    예를 들어 생각해보자) 판교역 출근시간 9시야.
    총 개찰구 10개 중에서 출근시간이니깐 8개는 out을 해놨고, 2개는 in을 해놨어.
    사람들이 나오기 시작하고 시간이 지나서 보니깐 out하는 8개의 개찰구에는 아직도 사람들이 줄을 서고 있고,
    In 하는 2개의 개찰구에는 사람이 없네? 이미 다 사람들이 들어온거야
    그러면 In 2개의 개찰구 중 1개를 out으로 바꿔도 되지 않아? 굳이 2개를 고정해놓을 필요가 없다는 말이지. 이거는 리소스 낭비야.
    그치만 1개는 남겨놔야해. (지금 설정에서는 in 하는 사람들이 없는거지만 남겨놔야 서비스지.)
    ==> 이런식으로 이 상황을 wait()을 이용해 <선고정 후재배치> 도 괜찮지 않을까?

  • 분석- 파악- 설계:
    매우 중요하다. 이거 제대로 하기 전까지는 코딩 안할거다. (설계에서 개발 순서도 짜야함)

  • 개찰구는 어떻게 표현할까?:
    개발의 기초라고 불리는 스택,큐 .. 또 얘네들일까?

  • 서버개발은 어떤식으로 하나?:
    효율 지점을 찾기위해서.

오늘은 뭔가 중구난방으로 작성했지만 내일부터는 분석-파악-설계를 제대로 진행해봐야겠다.

profile
"돈받고 일하면 프로다"

0개의 댓글