기본적인 기능은 대략적으로 구현되었다..


1. 색, 모양 등을 선택하면 해당되는 파라미터를 디스플레이에 띄워준다.

2. 선택한 파라미터에 맡게 matplolib를 보여주자.


애초에 이 스몰 프로젝트를 진행하게 된 이유는 수많은 파라미터 때문에 matplotlib을 고생하는 사람들을 위해

만든 것이고 그렇기에 간단하고 직관적이게 보여주고자 하는것이 목적이었다.


기능 구현이 우선이기에 일단 파라미터는 3개만을 기록하여 구동되도록 하였다.

다만 문제가 무진장 많다..


일단 이를 이전에 계산기나 핑퐁게임처럼 클래스 화를 하려니 어떠한 기준으로 이것을 나눠야하는지가 제일 큰 고민이고

두번째로는 이걸 만들다보니 실시간으로 그래프 모양이 바뀌었으면 좋겠다 라는 생각이 든다.

세번째로는 수많은 파라미터를 어떻게 조절해야하며

네번째로는 바 차트 뿐만 아니라 다양한 다른 차트들은 어떻게 적용하고

마지막으로 저 숨막히는 GUI를 어떻게 손대야할지...


어렵다 ㅠ_ㅠ

자바의 예외처리,

이전부터 고민해왔는데 막상 찾아보기는 이번이 처음이다.


예외처리를 하는 이유...

빨간줄이 떠서...(과거..)


지금은 만약에 발생할지 모르는 로직상의 오류를 잡기 위해서라 말하고 싶다.

(문법적 오류는 에러라고 한다)


예외처리 방법은 3가지가 있다.

1. 예외복구(try/catch/finally)

2. 예외처리회피(throws)

3. 예외전환(catch / throw)


보통 1번, 2번 방법을 많이 썻던거 같다.


두번째 프로젝트에선 항상 1번 방법을 썻고 이번 프로젝트는 2번 방법을 쓰고 있다.


왜 2번을 쓰냐고? 이건 대답 못하겠다.

단순히 호출한 주체에게 예외를 던진다 라고 말하기에는 좀 민망하다..


결국 예외는 에러를 처리(기록) 하기 위함이고 어떻게 발생할지 모르기에 항시 준비해야한다..

이러한 고민 없이 계속 프로젝트를 진행하다보니 예외처리가 어렵고 어색할 수 밖에 없었는 듯 하다.


여기서 더 나아가 결국 이를 처리하기 위해선 이러한 내용을 로그로 저장을 해야하는 것이 필수적이란 말이기 때문에..

로그로 저장하는 방법을 고민해야할 때가 왔다..

따로 클래스 정리를 안하고

일단 있는 그대로 다 작성하였다.


여러가지 의문이 많이 발생하였고 이제 풀어나가야한다.

제일 성급한 문제는 지정한 각종 파라미터를 어떻게 저장하고 유지하여 넘겨주는가 이다...



사이즈도 문제이고.. 허허 쉽지않다

레벨 3 멀리띄기 문제.

문제는 간단하다. 00이는 멀리띄기를 1칸 또는 2칸 할 수 있다.

자연수 n칸을 줄때 00이가 n까지 갈 수 있는 경우의 수를 구하라.

만약 4를 건네주면

1,1,1,1

1,2,1

2,1,1

1,12

2,2

로 총 5가지의 경우가 나온다


이런 문제는 당연히 DP로 접근을 해야하는데 지난번 풀었던 문제와는 살짝 다르다.

지난번 동전문제는 1,2,1 이나 2,1,1 이나 결국 같은 것으로 인식하지만 이 문제는 그렇지 않다.

하지만 지난번 거스름돈 문제를 풀면서 느낀점은 쪼개서 해결할 수 있다는 것이었고

이 문제 역시 쪼개서 풀도록 노력하였다.


이 문제를 1,2,3,4 의 숫자를 각각 경우의 수를 풀어쓰면 좀더 쉽게 이해 할 수 있다.




결국 4라는 숫자는 3에 1을 더한 경우와 2에 2를 더한 경우이기에

결국 4의 경우의 수는 3과 2의 경우의 수를 더한 것과 같고

이를 정리하게되면 피보나치 수열이 된다..

껄껄

레벨3, 거스름돈 문제,

문제는 매우 간단하다.

총 금액과 동전의 종류를 건네주고 이에 대한 경우의 수를 계산해낸다.


예를 들어 5원, [1,2,5] 가 들어오면

1 * 5, 1*1 + 2*2, 1*3+2*1, 5*1 로 총 4가지의 경우가 나온다.


이렇게 무언가가 쌓여야 하는 문제는 기본적으로 동적 프로그래밍으로 접근을 해야한다는 것을

알고는 있으나 여기서 더 나아가지 못했다.


이번 문제를 통해서 알수 있는것은 동적프로그래밍은 개념은 방법이 아니라 어떻게 테이블을 구성하냐는 점이다.


정리한 노트 이미지가 올라가질 않는다...


파일로 넣으니 올라가네


문제는 위와 같다.

단순히 보게 되면 이는 3진법을 물어보는 문제같다.

하지만 3진법과는 다르다.

기존 3진법과 다른 점은 나머지를 어떻게 표현하는가, 정확히 말하자면 나머지가 0인경우의 대처법이다.


기존의 진법들은 나머지를 0으로 함으로서 1의 자리가 0이 되게끔 하나 124는 나머지가 0인 경우 1의 자리를 3으로 고정시킨다.



위 처럼 같은 21을 나누어도 210, 144 이런 모양이 발생하는 이유는 나머지의 처리때문이다!!

'1일 1문제, 프로그래머스' 카테고리의 다른 글

프로그래머스, 레벨3, 멀리띄기  (0) 2018.07.07
프로그래머스, 레벨3, 거스름돈  (0) 2018.07.07
소수 찾기  (0) 2018.06.30
레벨2) 최고의 집합  (0) 2018.06.23
최고의 집합  (0) 2018.06.23

6일째 개발하는게 아니기에 횟수로 변경.


드디어 게시판에 댓글 기능을 추가하고 완료하였다.

댓글기능은 사실상 ajax의 천국 + jquery ...


그렇기에 서버에 익숙해져있던 나에게는 가장 어려운 산이 아니었나 싶다.


댓글 역시 기본 원리는 게시물이랑 똑같다.

그렇기에 DB도 게시물이랑 구조가 같다.

게시물과 구조가 같다는 뜻은 결국 페이징 처리도 필요로 하다는 뜻이기에

지난번 사용했던 페이징 개념을 재사용하였다.


많이 어려웠던 부분은 역시나 jquery

셀렉터가 많이 헷갈리나 이제는 꽤 익숙해졌다.

다만 이번 부분에서 스크립트의 기능들이 다 세분화 되어있다 보니 이걸 그냥 이해하려 한다면 매우 힘들것이다..



운동하자친구야.pdf



위 pdf 의 경우 수기로 정리한 내용인데, 나같은 경우 전체적 흐름을 확인할때는 수기로 쓰고 보는게 좋아서 자주 이렇게 한다.


# modal을 사용할때 동작이 되더라도 회색빛깔로 뜨는 경우가 있는데 

모달의 경우 위치가 고정되어있지않으면 이러한 경우가 많기에 되도록 </body> 태그 바로 앞에서 사용하는게 좋다고 한다.

# 스크립트 상에서 클래스나 아이디 값을 확인할때는 null로 비교하는 것이 아닌 ""로 비교해야한다.


지난번 예제를 바탕으로 

맨처음 했었던 계산기를 모듈화 해보기로.


말이 모듈화지 결국 클래스로 쪼개는 것인데

이를 나눌때 어떻게 잘 나눠야 하는지 제일 큰 주제였다.


계산기가 구동된다고 하면

기능을 구동시키는 메인,

배경을 담당하는 테이블,

버튼을 담당하는 버튼,


이렇게 크게 3가지로 나누어 지고 여기서 버튼의 클릭 기능을 어떻게 붙여야 할지가 핵심 관건이었다.

(사실상 돌아가게 구현하려면 버튼 클래스에 넣는게 제일 좋다)


다만 버튼이 만들어지는 객체마다 클릭 기능이 살짝 다르므로

(예를 들어 숫자는 단순 숫자 입력이지만 +,- 등은 다르기 때문)

이를 단순히 버튼안에 넣고 돌리는 것 역시 좋은 방법은 아니다.


자바처럼 get, set이 없으니 클래스 변수 사용하는 것도 어색하고.. 확실히 다른 느낌이다.

게시물 댓글 기능까지 빨리 마무리 하려고 하는데

생각보다 더디다.


Rest와 ajax를 같이 사용하다보니 좀 손에 안익은 것도 있고

여러모로 힘들다..


갑작스레 접속이 안되는 상황이 발생


오늘은 따로 업데이트도 안했는데 문제가 발생해서 당황..

war를 재배포 하기위해 톰캣을 끄니까


java.net.ConnectException: Connection refused (Connection refused)

라고 에러가 발생..


원인 불명이다.

다시 새로키니까 잘 되긴 하는데 찝찝하다

+ Recent posts