본문 바로가기

공부

(7)
[Java] inner class 와 inner static class 차이 들어가며 fastcampus 강의를 듣던 중 application layer 단의 DTO class를 만드는데 inner static class 로 request, response를 만들었다. 이전에 개발 시 dto 생성을 찾아보면서 따라해본 적있는 방법이지만 inner static class 에 대한 개념을 정확히 인지하지 못했다. 강사님이 "inner static class로 만들겠다. 멀티 쓰레드 환경에서 동시성 이슈는 발생하지 않기 때문에 안전하다." 라는 이야기를 하시며 코드를 작성하셨는데 이 말이 잘 이해가 안되서 inner static class에 대해 다시 찾아보고 정리하였다. inner class, inner static class ? class MyClass { class InnerCl..
[Java] Java와 Spring의 싱글톤 차이 자바의 싱글톤 패턴과 Spring Bean의 차이점이 궁금해져서 찾아본 내용. 아래 블로그에 설명이 잘 되어있다. https://judekim.tistory.com/91 자바 싱글톤 vs 스프링 싱글톤의 차이점 이 주제는 스프링 개발자들이 싱글톤 개념에 대한 이해를 확인하기 위해 인기 있는 인터뷰 질문 중 하나이다. 싱글톤 패턴이란 상황에 따라서 Application에서 특정 클래스에 대해 하나의 객체만 judekim.tistory.com
[알고리즘/Programmers] LV1. 2016년 Programmers LV1. 2017년 문제 설명 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT 입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 "TUE"를 반환하세요. 제한 사항 2016년은 윤년입니다. 2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다) 입출력 예 a b result 5 24 "TUE" 사용 언어 Java 해결 방법 1. Calendar API 이용 2. 계산법 이용 (..
[알고리즘/Programmers] LV1. 완주하지 못한 선수 Programmers LV1.완주하지 못한 선수 문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한 사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 입출력 예 participant co..
[알고리즘/Programmers] LV1. 두 개 뽑아서 더하기 Programmers LV1. 두 개 뽑아서 더하기 문제 설명 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 사항 numbers의 길이는 2 이상 100 이하입니다. numbers의 모든 수는 0 이상 100 이하입니다. 입출력 예 numbers result [2,1,3,4,1] [2,3,4,5,6,7] [5,0,2,7] [2,5,7,9,12] 사용 언어 Java 해결 방법 로직을 위해 순차적으로 세 가지 지점을 파악했다. 1. 두 수를 탐색하고 두 수의 합이 list에 없으면 list에 추가 2. list -> 배열 변환 3. 오..
[알고리즘/인프런정리] 1-1. Recursion 1 순환(recursion)? 자기 자신을 호출하는 함수이다. main() { code(); } code() { //... code(); } -> 무한루프 빠진다. main() { code2(4); } code2(int k) { if(k 4번 "Hello" 후 끝남. code2(4); -> code2(3); -> code2(2); -> code2(1); -> code2(0); -> return; recursion이 항상 무한루프에 빠지는 것은 아니다. 무한루프 빠지지 않을 조건 적어도 하나의 recursion에 빠지지 않는 경우가 존재해야 한다. recursion 반복하다보면 결국 base case로 수렴해야 한다. 관련 기본 문제 (1) 1~n 합 -> O (2) factorial: n! -> O 0! =..
[Java] 날짜 더하기, String<->Date 변환, Calender->String 변환 날짜 더하기 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");Date date = format.parse("날짜입력"); Calender cal = Calender.getInstance();cal.setTime(date);cal.add(Calender.DATE, 일수);cal.add(Calender.MONTH, 월수); String Date 변환 1. String To DateString from = "2018-09.06 11:11:11";SimpleDateFormat fm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date to = fm.parse(from); 2. Date To StringDate f..