공부 61

날씨 데이터를 가져와 날씨 정보 띄우기 1.

프로젝트중 날씨 api를 사용하게되어 그 사용한 코드에 대한 간략한 정리와 필요한 라이브러리를 정리하여본다. 사진에는 주석이 코드 위에 달려있어 설명이 보기 편하나 주석의 색이 어두워 안보일수 있음으로 밑에 글로도 달아둔다. 글쓴이도 아직 공부를 다 마친것은 아니나 최소한의 정보를 정리해두기 위해서 글을 작성한다. [getStringFromURL()] 메서드는 원하는 데이터값(요청형식, 발표일자 등...)을 지닌 URL값으로 기상청 API를 호출하여 원하는 정보를 JSON 형식으로 값을 받아온다. 1. URL객체를 생성해준다. 매개변수 url에는 경로와 GET식이기에 보내야 할 값들이 들어있다. 2. 받아온 json형식의 데이터를 Buffer을 이용하여 받아준다. #HttpURLConnection 에 대..

cookie를 통하여 컬럼명 클릭시 정렬 순서 바꿔보기

컬럼명을 클릭시에 cookie로 값을 전하여 정렬순서를 바꾸는 문제이다. 쿠키를 통해 값을 전달하여 employees테이블의 컬럼 클릭시 정렬 순서가 바뀐다. [getCookie()]쿠키의 값이 null인지 아닌지를 판단하여 null값이 아니라면 쿠키의 값을 리턴하여주는 메서드이다. [post_pass()] Get,Post 방식으로 들어오는 값을받는다. (둘다 값을 받는 이유는 PostMapping을 이용해도되지만 연습 문제인만큼 배열형식으로 사용할수 있다는것을 잊지않기위해 사용해보았다.) 쿠키와 클릭된 테이블의 컬럼값을 받아 Get방식으로 다시 리턴하여주는 메서드이며 처음 post방식으로 전송하여 받아내는 이유는 주소에 노출되는 정보를 막을수 있기 때문이다. 쿠키의 값이 null이 아니면서 쿠키를 통해..

Employees 테이블을 출력해보기(mybatis사용 전, 후)

Spring Framework 4버전 사용. Oracle Database 18c 버전 사용. 사용 라이브러리 lombok. jstl. HikariCP. Mybatis. Mybatis - Spring. 라이브러리 적용법에 대한 링크(아직 작성 전.) 스프링 프레임워크를 이용하여 데이터베이스의 HR계정에있는 Employees테이블을 출력하여보자! (이때에 모든 컬럼을 출력하기보다는 보기좋게 원하는 컬럼 몇가지만 출력해보자) EmployeeDto 클레스를 만들어 getter와 setter을 만들어준다. (lombok 라이브러리를 이용하였기 때문에 @Data어노테이션만 붙여준다면 자동으로 생성된다.) ※ MYBATIS 사용전 #클래스명 위의 @RequestMapping() 을 적어주면 클레스 내에서 공통적으로 ..

Java HashSet, Stream, for문을 통한 중복제거 방법

자바를 배워가며 중복제거를 꽤나 여러번 했었는데 중복제거할때의 프로그램의 성능과 그 방법들에 대해서는 자세히 정리해본적이 없는것 같다. 그래서 이참에 중복제거를 하는 여러 방법들과 성능을 측정해보았다. 꽤나 많은 양의 데이터 중복제거를 할때에 속도를 측정해보기위해 List에 많은 양의 과일을 담아주었다 무려 100000000개의 과일이다.... 내 생각에는 많은양 같으나 실제로는 적은양일지도 모르겠다. (코린이라 이부분은 잘 모르겠다 실무에 나가면 실제로 얼마나 많은양의 데이터를 처리하는지에 대해서는...) 시간측정은 currentTimeMillis()를 이용하여 진행하였다. 방법1 : 해쉬셋(HashSet)을 이용한 중복제거 Set은 중복을 허용하지 않는 객체이므로 List에 있는것을 Set에 다시 담..

공부/Java 복습 2021.09.28

Java 문자열을 뒤집는 4가지 방법 + 시간효율

문자열을 4가지 방법을 이용하여 뒤집어보세요. 문자열을 뒤집는 4가지 방법을 누군가 물어봤다... 뭔가 쉽게 뒤집겠네 라고 생각했지만 당장 떠오른 방법은 빌더를 이용한 방법과 charAt을 이용한 방법만이 머리에 떠올랐다 그래서 뭔가 재미있겠다 싶어 공부해보았고 어느 방법이 가장 속도가 빠른지도 궁금하여 체크해 보았다. (프로그램의 시간 성능을 측정하는 방법은 간단한 내용이지만 따로 다루도록하겠다.) 시간을 구하는 방법은 System.currentTimeMillis();를 사용하면 밀리초 단위로 시간을 구해지는데 이 방법으로는 코드가 너무 짧아 시간이 구해지지않아 더 자세한 시간을 구하기 위해 nanoTime() 메서드를 이용하여 구하였다. 첫 번째 방법은 charAt()을 이용한 방법이다. for문을 ..

공부/Java 복습 2021.09.26

Java ConvertedSecond

초를 입력받으면 년/일/시간/분/초로 변환하여 출력해보세요 ※ 단, 필요없는 단위는 출력하지 말 것 ex: 0년 0일 13시간 0분 5초인 경우 -> 13시간 0분 5초만 나와야 함 1. 스캐너를 이용하여 유저에게 초를 입력받는다. 2. seconds배열을 만들어 그 안에는 년,일,시,분 을 구할 수 있는 계산식을 넣어두고 seconds 배열에 담긴 식들을 유저가 입력한 숫자와 나누고 나누어진 값을 converted에 담아준다. second %= seconds[i] 를 해주는 이유는 예를들어 분을 구할때에 한시간은 3600초로 이루어져있는데 5000이라는 값이 들어왔을때에 5000/60 을 하게되면 정확한 분의 값을 구할수 없게되기 때문이다. 그렇기 때문에 한번 계산식의 계산이 끝날때마다 허용범위 이상의..

공부/Java 복습 2021.09.25

Java checkWord

사용자로부터 단어를 하나 입력받고 첫 번째 글자가 영어이면서 마지막 번째 글자와 일치하면 OK"를 출력하고 일치하지 않으면 "NOT OK"를 출력해보세요 대문자 소문자 같은것 허용하기. 1. 사용자에게 단어를 입력받을때에 대문자 소문자를 동일시 하기위해 toLowerCase()를 이용해 소문자로 변환한다. 2. first에는 문장의 첫번째 단어를 charAt()을 이용해 char형으로 담아준디 3. last도 first와 마찬가지로 담아주는데 단어를 0번부터 체크하기때문에 -1을 해줘야한다 4. 삼항문을 이용하여 check는 first와 last가 같다면 ok 아니라면 not ok를 담아주고 출력하여준다.

공부/Java 복습 2021.09.24

Java DiscountDay

어떤 옷가게에서 할인 행사를 짝수번째 목요일마다 진행한다고 한다. 년도를 입력하면 해당 년도의 모든 할인 날짜를 출력해주는 프로그램을 만들어보세요. [printEventOfYear()] 해당년도의 짝수번째 목요일을 파악하여 총 이벤트 일수를 출력하여주는 메소드 1. SimpleDateFormat을 이용하여 날짜의 원하는 출력 형태를 정해준다 2. while문을 통하여 짝수번쨰 목요일이 몇번 나오는지 체크하여주는데 while문의 반복 조건은 사용자가 입력한 년도와 이벤트에 해당하는 년도가 같을때까지인데 이벤트에 해당하는 년도는 반복문이 돌때마다 일수에 7일씩 더해주기 때문에 2020년을 입력받았다면 2021년이 되는순간 while문이 정지되는 것이다. 3. if문을 통하여 짝수번째 목요일을 찾아준다. 첫번..

공부/Java 복습 2021.09.23

5DiceGame 자바

랜덤으로 5개의 주사위를 굴린 다음에 주사위의 결과를 통해 다음을 구분하는 클래스를 만들어보세요 1. 풀하우스 (같은 눈이 2개 + 3개) (11666/22333/55252) 2. 스몰 스트레이트 (1234/2345/3456) 3. 라지 스트레이트 (12345/23456) 4. 4 다이스 (같은 숫자 4개) 5. 5 다이스 (같은 숫자 5개) final static int MAX_DICE_NUM 과 DICE_SIZE는 다이스에 가장 큰 숫자가 6인것과 5개의 주사위를 굴리는것은 변하지 않기때문에 final로 선언하였다. [생성자] 생성자에는 배열의 인덱스값과 랜덤 메서드를 선언해준다. [roll()] 메서드 랜덤 숫자 5개를 dices배열에 넣어준다. [printDice()] 메서드 roll() 메서드에..

공부/Java 복습 2021.09.12

Java 학생 만들기

문제 학생 100명을 만들어 평균점수가 가장 높은 학생을 만들어주세요. [student] 클래스는 학생을 정보를 생성할 클래스이다. 1. 학생의 이름은 랜덤이며 [name()] 메서드에서 first_name과 last_name을 합쳐서 리턴하여준다. 2. 점수는 랜덤이며 [ran()]메서드를 만들어 랜덤으로 각각의 점수를 부여해준다 3. 총합 점수는 [sums()]메서드를 이용하여 구해준다 4. 평균 점수인 avg는 sum / 3(과목수) 를 하여 구해준다 5. 다음으로는 String.format을 이용하여 학생들을 메인에서 찍어냈을때에 이름: ??? 국어: ???....과 같은 형식으로 나오게 해준다 [studentClass] 클래스는 학생들을 100명을 만들어 평균점수가 가장 높은 학생을 확인하는 클..

공부/Java 복습 2021.09.09
728x90