분류 전체보기
Spring으로 OP.GG 클론 코딩해보기 -6 (마무리)
Spring으로 OP.GG 클론 코딩해보기 -6 (마무리)
2019.09.15안녕하세요. 최근에 학교 개강도 하고 너무 바쁜 덕에 프로젝트 개발에대해서 크게 신경쓰지는 못했네요. 뭐 이번추석을 통해서 확실하게 마무리 지어서 너무 좋습니다. 여러분 이제 이 거대한 프로젝트도 어느정도 완성이 되었네요. 대략적으로 주요기능들은 잘 작동한 것 같아서 디자인이나 다른 요소들은 좀 나쁘더라도 여기까지 하는 걸로 맘을 먹었습니다. 기능 추가등의 일을 더 할 수 있지만, 추가하지않은 이유는 단순하게도 이건 Spring으로 만든 것이라는 생각이 잘 들지 않기 때문입니다. 학교를 다니면서도 꾸준히 부스트코스를 듣고 있는데 Spring 프레임워크를 재대로 사용하지 못했다는 생각이 너무 자주 들었습니다. 심지어는 이걸 다시 Spring으로 리펙토링하는 것은 엄청나게 시간을 들어야하고 수없이 많을 에러..
2019 Kakao Blind CodeTest - 2. 실패율 자바(JAVA) 해설 및 정리
2019 Kakao Blind CodeTest - 2. 실패율 자바(JAVA) 해설 및 정리
2019.09.08안녕하세요 .이번의 풀어볼 문제는 실패율입니다. 실패율은 객체 정렬을 통해서 문제를 해결합니다. 문제 2. 실패율 정답률: 55.57% 문제 풀러 가기 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기에 빠지고 말았다. 오렐리를 위해 실패율을 구하는 코드를 완성하라. 실패율은 다음과 같이 정의한다. 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테..
2019 Kakao Blind CodeTest - 1. 오픈 채팅방 자바(JAVA) 해설 및 정리
2019 Kakao Blind CodeTest - 1. 오픈 채팅방 자바(JAVA) 해설 및 정리
2019.09.08안녕하세요. 차후 있을 카카오 코딩테스트들을 준비하면서 카카오 블라인드 코딩테스트 1차 시험에서 나왔었던 문제들을 풀어 보았습니다. 풀어본 문제를 어떤 식으로 풀었고, 어떤식으로 해결 했는지에 대해서 이야기를 해보려고 합니다. 문제 1. 오픈채팅방 정답률: 59.91% 문제 풀러 가기 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오픈 채팅방을 개설한 사람을 위해, 다양한 사람들이 들어오고, 나가는 것을 지켜볼 수 있는 관리자창을 만들기로 했다. 채팅방에 누군가 들어오면 다음 메시지가 출력된다. “[닉네임]님이 들어왔습니다.” 채팅방에서 누군가 나가면 다음 메시지가 출력된다. “[닉..
Spring으로 OP.GG 클론 코딩해보기 -5
Spring으로 OP.GG 클론 코딩해보기 -5
2019.09.01안녕하세요. 오늘은 웹서버 구현하다가 진빠진 이야기에 대해서 이야기를 정말 길게 길게 할듯하네요. 이번에 구현했던 것들 웹서버구현과 leagueId를 통한 리그명 받아 오기에 대해서 설명해보도록 하겠습니다. 어떤 식으로 개발했는지에 대해서.. 일단 제일 간단한 leagueId를 통한 리그명 받아오기를 설명을 조금 해보자면, 현재는 노출되진 않지만, 자신이 속한 리그의 이름을 알려주는 기능입니다 . 뭐 아칼리의 정복자들이나, 라이즈의 수확자들이라던가.. 그런류의 리그명을 띄우는 것입니다. 하는 방식은 간단합니다 . /lol/league/v4/leagues/{leagueId}에서 leagueId의 값을 넣어주면 그에 맞는 리그명과 리그에 속한 인원들이 모두 나옵니다. 어차피 거기서 제가 필요한 건 리그명이기..
Spring으로 OP.GG 클론 코딩해보기 -4
Spring으로 OP.GG 클론 코딩해보기 -4
2019.09.01안녕하세요. 이것저것 더 만들어 보고 코드 구현을 조금 더 해보았습니다. 이번에 구현했던 것들 이번에 구현해본건 API키값을 단독 구현해보았고, 에러페이지를 만들어 보았습니다. 어떤 식으로 개발했는지에 대해서... 일단 기본 톰켓에서 서버문제든 404 오류가 발생했을경우 그 에러가 그대로 노출되는 경우가 있습니다. 그 경우, 제 코드의 노출이 발생할수도 있고 보안상의 문제가 있기도하기때문에 에러페이지에 대해서 처리를 할 필요를 느꼈습니다. 그러면 제가 어떤 오류를 범했는지 정도만 외부의 사람들에게 전달할 수 있고, 오류의 세부사항은 이클립스의 콘솔창에서만 확인 가능하기때문에 어느정도의 보안성을 유지하는 방법으로써 사용 가능합니다.. 그렇다면 Spring에서는 어떤식으로 에러처리를 하는지를 알아보죠. 방법..
깃 커밋의 글 양식을 잘 지켜보자
깃 커밋의 글 양식을 잘 지켜보자
2019.08.24커밋을 올릴때 항상 고민인건 도대체 여기에 뭘 써야하는가를 많이 생각하는데, 저는 가끔 생각하다보면 일정한 양식을 잘 지키는게 중요하지 않나라는 생각을 많이 합니다. 그래서 일정한 양식을 맞춰서 작성하려고 하는데, 그것들을 잘 정리한 블로그를 많이 보아왔고, 많이 활용했습니다. https://tech.ssut.me/write-a-good-git-commit-message/ 좋은 깃(Git) 커밋 메시지 작성하기 부. 어떻게 깃 커밋 메시지를 작성해야 잘 썼다고 소문이 날까요? 안나요 그런거. 들어가기 전에 우리가 왜 깃 커밋 메시지를 작성하는지 생각해 봅시다. 코드 리뷰를 빠르게 하기 위해. (speed up the reviewing process) 릴리즈 노트를 작성할 때 도움이 되기 때문에. (hel..
Spring으로 OP.GG 클론 코딩해보기 -3
Spring으로 OP.GG 클론 코딩해보기 -3
2019.08.24안녕하세요. 오늘은 부트스트랩에 관한이야기가 주가 될 것 같습니다. 이번에 구현했던 것들 부트스트랩 파일 추가 사용자 설정 변경 home.jsp 레이아웃 변경. result.jsp 레이아웃 변경. css 기능중 nav, footer 갱신. 어떤 식으로 개발했는지에 대해서... 부트스트랩을 설정하는 방식은 다운로드해서 CSS파일과 JS파일을 적용하는 방식과 CDN을 이용해서 서버에서 받아오는 방식이 있습니다. 근데 CSS를 편하게 하기위해서 일정 템플릿을 가져오는 건 좋은데 레이아웃 양식을 맞추기가 어려웠습니다. 특히 일반 CSS처럼 어떤 id를 지정해놓고 이걸 지정하는 과정이 아니라 특정 값을 가지고 있는 id를 맞춰서 layout을 짜므로, 그것을 맞춰서 하는데 있어서 엄청 애를 먹었습니다. 즉, 부트..
Spring으로 OP.GG 클론 코딩해보기 -2
Spring으로 OP.GG 클론 코딩해보기 -2
2019.08.24안녕하세요. 오늘 이 프로젝트 진행사항을 모두 다 적는걸 목표로 하겠습니다. ㅋㅋ 이번에 구현했던 것들 랭크정보, 랭크 승패, 랭크와 티어 표시. 랭크문양은 url로 따올수없어서 img파일 추가 logger 한글 파일 오류때문에 안된거 maven dependency로 추가함. 어떤 식으로 개발했는지에 대해서... 처음에는 loggger 한글 파일 오류 때문에 안되는 것에 대해서 설명해보자면, 처음에는 logger.info가 콘솔창에 아무짓도 안하길래. 나는 이게 큰 문제가 없다고 생각했는데 원래는 이렇게 떠야지 정상이었던 것. 이게 원래는 안고쳐도 잘 작동 되었지만, 무슨 오류였는지 logger에 파싱을 못해주는 것 때문에 앱실행 자체가 안되버려서 해결 방안을 찾으려 노력했습니다. xerces xerce..
Spring으로 OP.GG 클론 코딩해보기 -1
Spring으로 OP.GG 클론 코딩해보기 -1
2019.08.24안녕하세요. 이제 좀 유의미한 결과가 나와서 포스팅을 진행합니다. 이걸할려고 내가 웹프로젝트 강의를 2주를 ... 일단 라이엇 API를 사용해서 OP.GG 클론코딩을 해보는 것을 목적으로 생각하고 프로젝트를 진행했습니다. 나중에 차근차근 코드까지 보여드리면서 알려드릴 기회가 있으면 포스팅하도록 하고 개발 일기정도로 생각해주면 좋겠습니다. 처음에 구현했던 것 result.jsp 구현 : 전적 검색 결과 나오는 페이지 summoner구현: 객체 구현. SearchSummoner구현: 이름가지고 받아온 결과를 전달하는 Controller역할. 어떤 식으로 개발했는지에 대해서... 첫번째로 내가 이 결과를 보냈을때 값을 보여줘야할 view인 JSP를 만들어줘야합니다. 그 값을 전달 받을 page인 Result...
부스트코스 개발일지 TODO앱 만들기 - 7~8일차(완성)
부스트코스 개발일지 TODO앱 만들기 - 7~8일차(완성)
2019.08.17한 이틀내내 CSS만 짰는데, 예상보다 CSS에서 레이아웃을 잘 짜는 게 엄청 어려워서 애먹었다. 처음에는 아예 todo, doing, DONE을 따로 구성하고 그걸 왼쪽 가운데 오른쪽 이런식으로 카드들을 쌓는 방식으로 할려했는데 그방식은 애초에 구현하기가 어려워서 (여기서 한 4시간씀) 그래서 보드화 시켜서 구현하는 방식을 택했다. 그 안에 카드를 따로따로 구현하는걸로. ㅋㅋ; 그래야지 한 화면에 3개가 있을 수 있을 것 같아서, 그렇게 구현하니까 재대로 됨. 원래는 버튼을 div로 따로 구현했는데 이걸 화살표로 만들수 없다는 사실에 좌절하고 7일차를 때려쳤던걸로 기억하고 8일차에 이걸 a태그로 한다음에 get으로 값전달을 하면 된다는 걸 그때 알아버려서 허탈함을 얻었다. 막상 AJAX에서 엄청 고생한..
부스트코스 개발일지 TODO앱 만들기 - 6일차
부스트코스 개발일지 TODO앱 만들기 - 6일차
2019.08.17콜백함수를 통해 변환된 HTML을 값을 받아서 다시 innerHTML을 해주는 작업. 그리고 그 이후에 생기는 모든 문제들에 대해서 다시 생각해볼것ㅠㅠㅠ FE: CSS 다시 짜기. 에대해서 해결을 했어야하는데, 콜백함수에 값이 전달 되지 않은건 HTML에 이 함수가 실행되면, 다시 event처리를 하지 못해서인데 그걸 해결해주기위해선 다시 함수를 재활성화를 시켜주면 되는 것이다. 음.. 그걸 해결시키기위해서 약간 재귀함수처럼 구문을 재활용을 하기로했다. 즉, 콜백함수안에다가 이함수를 넣고 다시 실행되는 방식을 채택했다. 그랬더니 됬다. 문제는 이 함수를 만들었는데 어떤식으로 실행시키는 가였는데 처음에는 일단 이벤트리스너를 통해서 클릭이 된순간 -> 이 함수를 실행을 시켜보도록 했는데, 막상 그러니까 두번..
부스트코스 개발일지 TODO앱 만들기 - 5일차
부스트코스 개발일지 TODO앱 만들기 - 5일차
2019.08.15오늘도 열심히 코딩공부를 합니다. 뚝딱뚝딱 만들지 못해서 아쉬울뿐. 1회차는 2일만에 거의 막힘 없이 만든 느낌인데, 지금은 영 진척이 안난다. 한번 막히면 자꾸 막힌거에서 계속 진척이 안나서 고생한다. ㅠ 일단 AJAX를 구현할때 버튼을 Input으로 만드는 바람에 값전달에 있어서 아무 값도 전달 해주지 못해서, 결국 그 방법을 찾는데 시간자체를 너무 많이 써서 걍 정말 반쯤 포기하는 상태로 있었다. 근데 생각해보니까 input 태그로는 하기 어려울 것 같아서, input말고 다른 태그 쓰면 어떨까 싶어서 그냥 만들어서 해보니까 수월하게 전달이 됬음. 결국 UPDATE는 잘 작동했구. 문제는 없었음. 물론 그 값전달하는 방식에서도 애를 좀 먹었는데, getAttribute를 값을 받아올려했다가 방법의 ..