분류 전체보기
부스트코스 개발일지 TODO앱 만들기 - 4일차
부스트코스 개발일지 TODO앱 만들기 - 4일차
2019.08.14당일에 AWS 교육 강의를 듣느라 많은 시간 투자를 안해서 별 진척이 없으니 적을 내용도 적긴하다. 일단 조금이라도 했으니까 적어보면, FE: CSS 깔끔하게 해서 완성 시키기. BE: TodoFormServlet을 통해 todoForm.jsp로 포워딩하기. TodotypeServlet만들고 TodoDao , update 메소드 잘 수정해서 적용될수 있게끔 만들기 가 이번에 해야할 일이었는데 일단 Servlet이름을 잘못 설정해서 서블릿이름을 바꿔주었다. Addto 뭐어쩌구로 설정해서 설정하라고 한대로 설정해서 Rename해서 바꿨다. 문제는 웹내에서 servlet URI 코드를 바꿔야하는데 그걸 서블릿 설정할때 아니면 바꾸는 것을 띄우는 방법을 몰랐으나, Web.xml을 통해서 서블릿이름과 URI를 일..
UCPC 2019 참가 후기
UCPC 2019 참가 후기
2019.08.12우연찮은 기회로 학교에서 팀을 이뤄서 같이 친구들과 함께 UCPC를 나갈 기회가 생겨서 잘하는 친구들 덕을 많이 보면서 예선을 간단하게 참여해볼 목적으로 참가 신청을 했습니다. 예선에서는 각자 노트북을 한대씩 쓸 수 있어서 그냥 끄적끄적 되는대로 문제를 풀었는데요. 역시 너무나도 어려운 문제들이 다수 포진해있어서 엄청 고생하면서 문제를 풀었는데,(뭐 많이 풀지도 못했죠.) 예선에서 41등을 하면서 탈락을 하는 줄 알았으나, 본선 진출한 팀들이 몇몇이 떨어져 아주 우연찮은 기회에 UCPC 2019에 참여 할 수 있는 기회를 획득했습니다. 당일 아침 10시 고대까지 도착하기로 한 친구들과 함께 고대에서 만나서 간단하게 아침을 핫바 하나정도로 때우고 거의 반쯤 기절한 상태로 대기를 하고 있었습니다. 도착해서 ..
부스트코스 개발일지 TODO앱 만들기 -1~3일차
부스트코스 개발일지 TODO앱 만들기 -1~3일차
2019.08.121~2일차는 사실상 Servlet-JSP 연동에서 가장 헤맸고(헤매었는지 헤맸는지 뭔지 내가 알빠야?) 어디서 가장 해맸냐면, 시발 그 JSP에서 모든 파일이 열릴거라고 착각한 내자신이 너무 밉다. JSP는 HTTP 리스폰스와 리퀘스트를 받지 않고 그냥 형식만 띡 있는 상태라, 리스폰스나 리퀘스트를 직접적으로 받는 쪽은 서블릿이 하는 것이고, 그 내용을 받아서 JSP 전달해주는 게 Servlet이 할일인거임. 즉, JSP는 폼만 만들어서 보여주고. 실질적으로 내용은 서블릿이 가지고 있다는 것이지. 근데 그걸 몰라서 JSP를 서버에서 열어보면서 왜 NULL포인터 예외가 뜬다고 지랄했던 나를 보면서 너무나도 빡이 친다. 그건 당연히 안되는 거기때문이다. 안되는 이유야 당연한것. 받은게 없으니 NULL포인터를..
Spring 공부 정리 -3. 의존성 주입(2)
Spring 공부 정리 -3. 의존성 주입(2)
2019.07.25의존 객체 자동주입 이전의 방법은 은근히 골치가 아픈게 직접 넣어줘야하는 귀찮음이 존재합니다. 나 를 직접 일일히 쳐줘야하는데, 굳이 그런 방법을 취하는 것이 아닌, Spring이 자동으로 알아서 넣는 방식을 사용하는 것이죠. 그럼 어떤 방식으로 자동 주입을 할까요? @Annotation기능을 통해서 자동으로 주입하는 방식을 취합니다. 두가지 방식으로 넣을 수 있는데, @Autowired와 @Resource을 넣는 방식으로 작동합니다. @Autowired 주입하려는 객체의 타입이 일치하는지를 보고 객체를 자동 주입합니다. 사용할 수 있는 것은 생성자, 메소드, 변수를 통해서 객체 타입이 일치하는지를 보고 집어 넣을 수 있습니다. 이런식으로 constructor태그가 없더라도, @Autowired만 있으면..
Spring 공부 정리 -2. 의존성 주입(1)
Spring 공부 정리 -2. 의존성 주입(1)
2019.07.25의존성 주입의 경우 DI(Dependency Injection)라고도 부르고, 꼭 Spring에 국한되어서 적용되는 것은 아님. Java계열의 언어들이나 사용값에 대해서 다 적용된다고 합니다. (Java, JSP, android) 자바의 경우 한객체에서 다른 객체를 받아오는 방식으로 변수형식으로 받지 않고, 생성자에 의해서 넣는 방식으로 들어가게된다면, 객체를 직접 만드는 방식이 아닌 만들어진 객체를 넣어서 사용하는 방식으로 작동한다. Spring은 스프링 설정 파일에 의해서 스프링 컨테이너에 의해서 bean이란 객체를 만들어서 직접 이 객체를 필요하는 곳에 자동으로 넣어주는 방식을 취합니다. 혹은 Spring의 bean은 큰 객체안에 작은 객체를 넣어서 큰 Bean을 만드는 방식으로 작용할 수 도 있습..
Spring 공부 정리 -1. 프로젝트 생성과 특징
Spring 공부 정리 -1. 프로젝트 생성과 특징
2019.07.24Spring을 공부하는 이유는 정말 간단한데, web app개발을 위해서는 Spring이 필요하기때문이다. (심지어 베이스 언어가 내가 쓰는 자바야 ㅎㄷㄷ) 그래서 Spring을 이용해서 web 앱을 개발하기위해서 Spring Framework를 배우고 있고, 인강을 들으면서 정리한 내용을 여기다 고대로 적는중이다. 그럼 시작. Spring은 대부분 Maven을 통해서 프로젝트를 만들어가는데 여기서 Maven: Build Tool을 뜻한다. 빌드에 도움을 주는 모든 과정을 maven이 대신 해준다고 생각하면된다. 그래서 프로젝트 생성시에도 maven을 통해서 생성해야한다. 만들 경우 group id와 artifact id가 필요한데 group id의 경우-> 전체 프로젝트를 뜻하고, artifact id..
[백준 - 16235번] 나무 제테크- JAVA 정리 및 해설(삼성 SW 역량테스트)
[백준 - 16235번] 나무 제테크- JAVA 정리 및 해설(삼성 SW 역량테스트)
2019.07.24안녕하세요. 이번에 풀어볼 문제는 나무 제테크입니다. 나무제테크는 시뮬레이션을 이용한 문제입니다. 문제 자체는 엄청 간단하므로, 구현하라는 대로 구현을 해주면 그렇게 어려울게 없는 문제입니다만, 구현대로 하면 약간의 오류가 발생하는데요. 바로 시간초과에 걸리게됩니다. 처음에 문제를 풀때는 ArrayList를 이용해서 문제를 풀었는데 이 경우는 시간 초과가 발생하게 됩니다. import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.ArrayList; i..
Riot Api를 가지고 웹앱을 한번 만들어보자. (메모장)
Riot Api를 가지고 웹앱을 한번 만들어보자. (메모장)
2019.07.19지금 간단한 프로젝트중인데, 솔직히 프로젝트는 그렇다치고 내가 정리한 내용을 어디에 정리할 곳이 필요한데, 어차피 프로젝트 진행중이라면 진행 상황을 여기다가 쭉 적어보는 것도 괜찮아 보임. 2019.07.19 (금요일) API key값을 매번 최신화 하는거가 귀찮긴 한데, 하루에 24시간짜리 홈페이지 사용 API key값을 받을 수 있음. API key값을 고정적으로 받으려면, 아마 앱등록과 같은 작업을 해줘야하는듯. (부정확함.) API document에서 API 사용 방법을 알 수 있는데 API 이것저것 꼬여있어서 뭐부터 찾아보는게 어렵긴 했음. 순차적으로 알아낸 방법을 알려드리자면, 대충 이럼. 1. 어차피 모든정보들은 게임플레이어들이 들고 있을 가능성이크고, 아이디명을 찾는 것부터 중요. summ..
[백준 - 1912번] 연속합- JAVA 정리 및 해설
[백준 - 1912번] 연속합- JAVA 정리 및 해설
2019.07.13안녕하세요. 오늘 풀어 볼 문제는 연속합입니다. 연속합은 Dynamic Programming을 이용한 문제입니다. 연속합은 연속된 수중에서 가장 큰 합을 구하는 문제이기 때문에 수열마다 연속적으로 수를 더해가면서 그합이 가장 큰 경우를 찾으면 된다고 생각해서 문제를 이런식으로 풀 수도 있습니다. 수열에서 n번째 수부터 마지막까지 연속적으로 더해가면서 가장 큰 수를 cache[n]에 저장하고 그 cache배열에서 가장 큰수를 더해가는 방식으로 문제를 풀었습니다. import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io..
[백준 - 14499번] 주사위굴리기 - JAVA 정리 및 해설(삼성 SW 역량테스트 문제)
[백준 - 14499번] 주사위굴리기 - JAVA 정리 및 해설(삼성 SW 역량테스트 문제)
2019.07.12이번 문제는 삼성 SW역량테스트 기출문제인 주사위 굴리기입니다. 시뮬레이션 문제 방식으로 문제를 풀면 됩니다. 저도 처음에는 이 시뮬레이션 문제를 어떤식으로 풀어야할지 감을 잘 못잡았는데요. 푸는 방식은 간단하게 케이스를 나눠서 생각해보고, 순차적으로 문제를 어떤식으로 진행할지를 생각해보고, 문제를 접근하는 편이 좋습니다. 여기서 시뮬레이션에서 가장 큰 골격은 3가지의 루틴으로 진행됩니다. 1. 지도상에서 주사위를 이동시켜봅니다. 1-1. 지도상에서 주사위가 밖으로 이동한 경우. 무시합니다. 2. 지도상에서 주사위가 밖으로 이동하지 않은 경우 이동 방향에 따라서 이동합니다. 3. 주사위의 아래쪽은 Map의 경우에 따라 그값을 복사하거나 복사해줍니다. 그 이후에 주사위 상단의 값을 출력합니다. 이 루틴을 ..
삼성 역테를 풀다보면 느껴지는것
삼성 역테를 풀다보면 느껴지는것
2019.07.05삼성 역테를 풀다 보면 내가 원래 공부하는 거랑 양상이 완전히 다르다는 걸 알 수 있는데 특히 가장 많이 느끼는 건 시뮬레이션을 하게끔 코드를 짜야하는것이 가장 큰 요인인 것 같다. https://www.acmicpc.net/problem/17143 17143번: 낚시왕 낚시왕이 상어 낚시를 하는 곳은 크기가 R×C인 격자판으로 나타낼 수 있다. 격자판의 각 칸은 (r, c)로 나타낼 수 있다. r은 행, c는 열이고, (R, C)는 아래 그림에서 가장 오른쪽 아래에 있는 칸이다. 칸에는 상어가 최대 한 마리 들어있을 수 있다. 상어는 크기와 속도를 가지고 있다. 낚시왕은 가장 처음에 1번 열의 한 칸 왼쪽에 있다. 다음은 1초 동안 일어나는 일이며, 아래 적힌 순서대로 일어난다. 낚시왕은 가장 오른쪽 ..
[백준 - 2579번] 계단오르기 - 자바(JAVA) 정리 및 해설
[백준 - 2579번] 계단오르기 - 자바(JAVA) 정리 및 해설
2019.03.13오늘은 대표적 DP(Dynamic Programming)문제인 계단오르기를 보겠습니다. Dynamic Programming 초반에 가장 많이 연습하게 되는 문제인 계단오르기는 처음에 접할때는 조금 어렵습니다.. 일단 저는 DP에 대해서 짚고 넘어가야된다고 생각합니다. 우리는 왜 DP를 사용하는 것에 대해서 정확한 인지가 필요하고 이걸 바탕으로 문제를 풀어보도록하겠습니다. DP는 기본적으로 중복으로 여러번 계산하는 것을 막기위해서 고안된 방법입니다. 개념이 길긴하지만, 간단하게 쉬운 사례를 들면. 파스칼의 삼각형을 생각해보면 쉬운데 파스칼의 삼각형은 이항계수의 앞의 계수를 구할때 사용하는 방법인데, 이게 삼각형의 모양을 띄고 있다보니, 중복되는 경우가 발생합니다. 그래서 이경우 재귀적(재귀인지 혹은 For..