프로젝트/개인프로젝트
온라인 사진전을 개최하며 겪었던 후일담 -2편
온라인 사진전을 개최하며 겪었던 후일담 -2편
2020.12.15혹시 이전 편을 보지 않으신 분들은 이전 글을 참조 해도 좋을 것 같다. [프로젝트/개인프로젝트] - 온라인 사진전을 개최하며 겪었던 후일담 -1편 온라인 사진전을 개최하며 겪었던 후일담 -1편 나는 이게 이렇게 커질거라고 생각 못했다. 나는 금요일 그것도 저녁 10시가 넘어서 사진전 링크가 우리 동아리 카톡방에 뿌려질때만 해도 과연 우리 동아리 사진전이 이정도로 큰 파급력이 있 sundries-in-myidea.tistory.com 왜 이렇게 정적 이미지에 대해서 조회시 금액이 많이 나갔는가? 이전편 초입에서 봤듯이 가장 큰 문제는 하루만에 다 쓸정도로 정적이미지 전송량을 도대체 어디서 쓴 걸까? 나는 대략 여러가지를 예상을 했지만, 다음과 같이 요약할 수 있을 것 같다. 첫번째, 정말 놀라울 정도로 ..
온라인 사진전을 개최하며 겪었던 후일담 -1편
온라인 사진전을 개최하며 겪었던 후일담 -1편
2020.12.08나는 이게 이렇게 커질거라고 생각 못했다. 나는 금요일 그것도 저녁 10시가 넘어서 사진전 링크가 우리 동아리 카톡방에 뿌려질때만 해도 과연 우리 동아리 사진전이 이정도로 큰 파급력이 있을거라고 생각하지는 않았다. 저녁 12시부터 많은 공유가 된 이후부터 분명히 사람이 많이 들어오는 거까지는 봤는데... 실 서버 배포를 하는 건 결국 누구나 신경을 많이 써야하는 문제라서 당일날 앞에 테스트 및 드라이 리허설 방식으로 서버 부하테스트도 해보고 다른 일까지 모두 처리하다보니까 지쳐서 새벽에 구글 애널리틱스로 많은 사람들이 들어왔구나 와 그래도 서버가 안뻗고 잘 되는거 보면 뭐 어쨌든 굴러가는구나 이게...하면서 별생각을 안하고 잠을 잤다. 자고 일어난 나는 새벽녘에 AWS로부터 메일 두통을 받았는데, 다음과..
OpenCv와 CNN으로 손으로 적은 숫자 인식기 만들기
OpenCv와 CNN으로 손으로 적은 숫자 인식기 만들기
2020.06.30안녕하세요. 머신러닝 마지막 기말고사로 간단한 프로젝트를 만들 기회가 있어서 저는 OpenCV를 통한 숫자 인식기를 만들어보았습니다. CNN의 경우 MNIST를 통해서 인식 시키는 Model은 여기저기 예제가 많기 때문에 굳이 여기서 명시하지 않고 참고 했던 사이트들을 나열하겠습니다. 일단 이번 기회에 중점적으로 설명드릴 부분은 OpenCV를 통해서 숫자를 인식 시키는 것입니다. 1. OpenCV를 통해 숫자 인식시키기 일단 사진 속에서 "숫자"라는 것을 인식 시키는 것이 중요하다. 어떤 식으로 숫자를 인식 시킬 것인가라는 측면에서 이것저것 많이 시도 했다. 시도 자체는 많이 했던 것 같은데, 실제로 무슨 시도를 했었는지를 기록을 따로 하지 않아서 가장 최적의 결과가 나온 방식을 이야기해보겠습니다. (분..
웹 크롤링으로 강원대학교 컴퓨터공학과 공지사항 텔레그램 봇 만들기
웹 크롤링으로 강원대학교 컴퓨터공학과 공지사항 텔레그램 봇 만들기
2020.03.18파이썬으로는 많은 개발을 할일이 없었는데, Telegram 봇을 만져보고 작동하다보니 꽤 재밌어서 학교 공지사항 봇을 만들게 되어서 포스팅 하게 되었습니다. 일단 왜 만들게 되었는지? 최근 코로나 19 사태로 학교에서 이런저런 공지사항이 올라오는데요. 어떤 공지사항은 꽤 중요하고, 어떤 사항은 저랑은 상관없는 소식이기도 하니, 이런 저런 공지사항을 읽어보거나 읽지 않거나 선택적으로 골라서 봐야했습니다. 그걸 제가 직접적으로 공지사항을 확인하기 위해서 매일매일 학교 공지사항을 확인하기는 너무 귀찮기도하고, 개인적으로 저희에게 메세지가 오는 것도 없어서 차라리 이런 공지가 올라올때마다 봇으로 알람을 울리게 하는 것이 좋다고 생각했습니다. 크롤링하기에는 저희 학과 홈페이지가 통합되면서 훨씬 크롤링하기에는 훨씬..
리다이렉션을 처리하는 여러가지 방식
리다이렉션을 처리하는 여러가지 방식
2020.01.08[프로젝트/개인프로젝트] - User Agent를 통한 각 OS별 마켓으로 옮겨주는 리다이렉트 페이지 만들기 저번 글을 작성하다가 한가지 의문점이 들었는데, 일단 내가하는 리다이렉션의 방법은 헤더에 Location을 넣어서 바로 처리해주는 방식이다. 이외에도 처리하는 방식이 여러가지인 것으로 알고 있어서 정리 겸 리다이렉션이 어떤 것인가를 체크해보도록 한다. 리다이렉션의 방식은...? 일단 리다이렉션 자체가 2가지 방법으로 나뉘어져있다. 301 리다이렉트와 302 리다이렉트 방식이 존재. 301 방식은 영구적 옮김을 뜻하고 그 안의 정보같은 것 즉, Referer를 다 사라지게 하는 효과가 있다. 즉, 내가 어디서 왔는지를 잃어버리게 하는 효과가 있다는 뜻이다. 302 방식은 일시적 옮김을 뜻하고, 스크..
User Agent를 통한 각 OS별 마켓으로 옮겨주는 리다이렉트 페이지 만들기
User Agent를 통한 각 OS별 마켓으로 옮겨주는 리다이렉트 페이지 만들기
2020.01.03최근 학교에서 인턴을 신청할 일이 생겼고, 마침 친구의 스타트업에서 일할 기회가 생겨서 인턴으로 일하는 중이다. 지금 내가 가지고 있는 기술 스택과는 좀 거리가 있지만, 어쨌든 웹이라는 주제로 일을 할 수 있기 때문에 일을 신청을 했었다. 그러다 보니 자연스럽게 여러가지 회사에서 원하는 요구사항들을 만들어 낼 기회가 생겨서 블로그에 올려본다 왜 이걸 하게 되었는가? 이 스타트업은 앱 자체가 안드로이드와 IOS 두개로 나눠져 있어서 그것을 QR 코드로 만들어내려면 2개가 필요했는데 솔직히 요즘에 그런 QR코드를 사용하는 경우는 드물다. 즉, 한 QR코드에 두개의 마켓을 담을 수 있는 그런 QR코드가 필요했다. 문제는 시중에서는 그런 코드 제작을 해주는 사이트들은 애초에 없기도 했거니와 심지어 만들어주는 사..
Spring으로 OP.GG 클론 코딩해보기 -6 (마무리)
Spring으로 OP.GG 클론 코딩해보기 -6 (마무리)
2019.09.15안녕하세요. 최근에 학교 개강도 하고 너무 바쁜 덕에 프로젝트 개발에대해서 크게 신경쓰지는 못했네요. 뭐 이번추석을 통해서 확실하게 마무리 지어서 너무 좋습니다. 여러분 이제 이 거대한 프로젝트도 어느정도 완성이 되었네요. 대략적으로 주요기능들은 잘 작동한 것 같아서 디자인이나 다른 요소들은 좀 나쁘더라도 여기까지 하는 걸로 맘을 먹었습니다. 기능 추가등의 일을 더 할 수 있지만, 추가하지않은 이유는 단순하게도 이건 Spring으로 만든 것이라는 생각이 잘 들지 않기 때문입니다. 학교를 다니면서도 꾸준히 부스트코스를 듣고 있는데 Spring 프레임워크를 재대로 사용하지 못했다는 생각이 너무 자주 들었습니다. 심지어는 이걸 다시 Spring으로 리펙토링하는 것은 엄청나게 시간을 들어야하고 수없이 많을 에러..
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에서는 어떤식으로 에러처리를 하는지를 알아보죠. 방법..
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...