'분류 전체보기' 카테고리의 글 목록 (6 Page)
본문 바로가기
728x90

분류 전체보기354

Java - [백준] 1157번 단어공부 입력받을때 영어의 대문자 소문자를 구분하는데 2가지 방법이 있다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Map; import java.util.Set; ​ public class Main { public static void main(String[] args) throws IOException { BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); ​ int[] arr = new int[26]; ​ String s = bf.. 2022. 9. 20.
[git] .gitignore 적용안될 때 git 의 캐시 문제로 캐시 내용을 전부 삭제후 다시 커밋하면 해결된다. git rm -r --cached . ​ git commit -am "fixed "remove git cache" 2022. 9. 16.
[Spring] Could not read JSON/ Cannot construct instance of XXXDto, XXXResponse 에러해결 DTO를 사용해 값을 입출력하는데 에러가 뜬다. 에러 내용은 Cannot construct instance of XXXDto (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator) 문제 원인은 DTO를 재구성하는데 생성자가 없기 때문이다. 기존에 DTO는 Builder 로만 객체를 생성했었다. @Getter @Builder public class XXXDto { // ~~~ } 오류를 해결하기 위해 @AllArgsConstructor, @NoArgsConstructor 를 추가해줘야한다. @Getter @Builder @AllArgsCo.. 2022. 9. 13.
Java - [백준] 3052번 나머지 서로 다른 값이 몇개 있는지 출력 = 중복 없는 값 출력 => set 자료형 이용해서 사이즈 구하면 되는 문제 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashSet; import java.util.Set; ​ public class Main { public static void main(String[] args) throws IOException { BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); int a = 0; Set s = new HashSet(); int a.. 2022. 9. 9.
[Spring] Sagger 3.0.0 with Spring boot 2.7.0. 개발 환경 SpringBoot 2.6.1 gradle Swagger 3.0.0 의존성 추가 /* build.gradle */ dependencies { // .. implementation 'io.springfox:springfox-boot-starter:3.0.0' // .. } Seagger 3.x 부터 pringfox-boot-starter 하나로 하위에 필요한 모든 라이브러리가 포함된다. Config 추가 @Configuration public class SwaggerConfig { @Bean public Docket api() { return new Docket(DocumentationType.OAS_30) .useDefaultResponseMessages(false) .select() .api.. 2022. 9. 6.
Java - [백준] 11021 A+B -7 이 문제에서 IDE를 사용하면 헷갈리는 부분이 생긴다. 예제 입력 1 5 1 1 2 3 3 4 9 8 5 2 예제 입력을 한번에 하고 예제 출력 1 Case #1: 2 Case #2: 5 Case #3: 7 Case #4: 17 Case #5: 7 예제 출력을 한번에 해야하나? 라는 의문이 생긴다. 정답은 아니다. 사람이 예제 입력을 입력하다보면 입력 속도보다 출력속도가 빨라 출력이 보이게 된다. 테스트 코드를 작성해 한번에 입력 값을 넣는 경우 입력 후 출력이 된다. 사실상 속도의 차이일 뿐 그래서 IDE에서 작성하는 경우 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import j.. 2022. 9. 2.
[Java] List, ArrayList 차이 찾아본 결과 간단하게 List = interface ArrayList = class 이렇게 표현할 수 있다. 그럼 차이점은 무엇인가. ArrayList list = new ArrayList (); (O) List list = new ArrayList (); (O) ArrayList list = new List (); (X) 이렇게 보면 대충 느낌이 올것같다. 자바의 두가지 이점을 가지고 있는데 한가지는 다형성이고, 한가지는 유연성이다. 다형성 ArrayList list = new ArrayList (); (O) 벤츠 list = new 벤츠(); List list = new ArrayList (); (O) 자동차 list = new 벤츠(); 위와같이 클래스를 생성 할 때 자동차 타입으로 생성하게 되면 .. 2022. 8. 30.
Java - [백준] 8393번 합 문제 n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오. 이 문제는 2가지 방법으로 풀 수 있다. 반복문을 이용하거나, 수학 공식을 이용하거나 반복문 Scanner sc = new Scanner(System.in); ​ int n2 = sc.nextInt(); int sum = 0; while (n2 > 0) { sum += n2; n2--; } System.out.println(sum); 공식 Scanner sc = new Scanner(System.in); ​ int n = sc.nextInt(); int result = n*(n+1)/2; System.out.println(result); 공식을 사용하면 간단하게 문제가 해결된다. 또한 반복문은 O(n)의 시간 복잡도를 가지고 수학.. 2022. 8. 26.
Java - [백준]2525 오븐 시계 문제에서 중요하게 봐야하는건 두 번째 줄에는 요리하는 데 필요한 시간 C (0 ≤ C ≤ 1,000)가 분 단위로 주어진다. 이 부분이다. 예제 1입력 14 30 20 예제 출력 14 50 이런식으로 나오는데 예제 입력의 두번째 줄의 값이 c의 값이다. c의 값은 0~1000 이기 때문에 int c = Integer.parseInt(bf.readLine()); int quotient = c/60; // 입력값을 시간과 int remainder = c%60; // 분으로 나눴다. c값을 60분 기준으로 시간, 분으로 나눠서 저장하고 if (quotient >= 1){ // 몫이 1을 넘을때 -> 입력값이 1시간 보다 클 때 h = h+quotient; // 기존 시간에 입력된 시간 더하기 m= m+rema.. 2022. 8. 23.
java [백준]2884번 알람 시계 //오류 코드 : M>45 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; ​ public class Main { public static void main(String[] args) throws IOException { BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); String str = bf.readLine(); StringTokenizer st = new StringTokenizer(str," "); ​ ​ int H = Integer.p.. 2022. 8. 19.
[Java] 문자열 합치기 왜 StringBuilder 인가 왜 StringBuilder 사용할까? java 에서 많은 문자열을 연결하면 많은 중간 문자열 객체가 생성되어 비효율적인 코드가 생성된다고 한다. 이유는 자바에서 String 객체는 변경 불가능하다. 한 번 생성되면 내용을 바꿀 수 없단 뜻이다. 따라서 하나의 문자열을 다른 문자열과 연결하면 새 문자열이 생성되고, 이전 문자열은 가비지 컬렉터로 들어간다. String str= "a" + "b" + "c" + "d" + "e"; str= "ab" + "c" + "d" + "e"; str= "abc" + "d" + "e"; str= "abcd" + "e"; str= "abcde"; 그래서 이러한 메모리 낭비를 위해 StringBuilder를 사용한다. StringBuilder는 변경 가능한 문자열을 만들어주.. 2022. 8. 16.
[Java]문자열 자르기 java에서 문자열 자르는 방법은 3가지가 있다. Substring split tokenizer String Class indexOf() String ex = "123-123"; int idx = ex.indexOf("-"); ​ //결과값 : 인덱스 값 출력 // 3 substring() : 문자열을 인덱스로 자른다. //사용법 String.substring(start) //문자열 start위치부터 끝까지 문자열 자르기 String.substring(start,end) // 문자열 start위치 부터 end전까지 문자열 가져오기 String ex = "123-123"; ex.substring(4); //123 ex.substring(2,4); //3-3 split() : 지정한 문자를 기준으로 문자열을.. 2022. 8. 9.
[Java] EOF 처리 알고리즘 문제를 풀다보면 런타임에러가 발생하는데 , 종료 조건 없이 입력이 주어진 상황에서 EOF(End of File)때문에 에러가 발생한다. 즉, 데이터 소스로부터 더 이상 읽을 수 있는 데이터가 없어서 생기는 문제다. 대표적인 Scanner, BifferedReader 두 가지로 이를 처리하는 방법을 알아보자. Scanner Class Scanner에서 더이상 읽을 데이터가 없으면 NoSuchElementException 을 던져준다. EOF 상황은 stop 'Main' 버튼을 누르거나, EOF를 입력해주거나, EOF 입력 같은 경우 윈도우의 경우는 "ctrl + z", 리눅스계열의 경우 "ctrl + d" 를 입력하거나 다른 타입을 입력해 InputMismatchException을 던져주거나 Sc.. 2022. 8. 5.
[Java] 입력 InputStream, Scanner, BufferedReader 비교 InputStream InputStream 의 정의는 This abstract class is the superclass of all classes representing an input stream of bytes. 이 추상 클래스는 바이트의 입력 스트림을 나타내는 모든 클래스의 슈퍼 클래스입니다. 여기서 중요한건 "바이트 입력 스트림"이다. byte 란? 하나의 단위로서 다루는 비트(bit)의 모임. 8비트의 모임을 1바이트라고 한다. Stream 이란? Stream in java A stream is a sequence of objects that supports various methods which can be pipelined to produce the desired result. 스트림(St.. 2022. 7. 26.
[Java] java의 인코딩 Unicode, UTF-8, EUC-KR Unicode 이전 글에서 본 문제점을 해결하기 위해 국제 표준화 기구(IOS)는 표준화작업을 진행하였다. 유니코드는 유니코드 컨소시엄에서 표준을 제정하고, 문자 집합, 문자열 인코딩, 문자열 처리 방식, 문자 정보 데이터베이스 등을 제공한다. 유니코드의 경우 각 나라별로 자신의 언어가 속하고 있는 고유한 공간을 할당받는다. 한글의 경우에는 0xAC00부터 시작하여 11172 자의 공간을 차지한다. 모든 글자는 사전 순서대로 매핑되어있다. 즉, 유니코드는 숫자와 글자 키와 값이 1:1로 매핑된 형태의 코드이다. 저장 효율을 위해 언어에 따라 하나의 문자를 표현하는데 1~4byte를 사용한다. 이로인해 유니코드는 26개국에서 같은 데이터를 공유할 수 있게 되어, 표준 인코딩 기법이 되었다. 이전에 사용하던.. 2022. 7. 22.
[Java] java의 인코딩 ASCII Code, Extend ASCII Code ASCII Code 아스키 코드는 1963년 미국 ANSI에서 표준화한 정보교환용 7비트 부호체계이다. 최상위 비트는 0으로 고정되어있고, 7bit를 사용하여 1Byte로 구성되어있다. 영어 알파벳과 특정 문자에 대해서 숫자와 1:1 매핑을 시켜놓은 것으로 한글을 포함한 다른 언어를 나타낼 수 없다. 그래서 유니코드가 등장했다. Extended ASCII Code ASCII 문자와 추가 문자를 포함하는 8 비트 부호체계이다. 2^8 = 256 개의 문자를 표현할 수 있다. ASCII control charachets : code 00~31 주변 기기들을 제어할 때 사용. ASCII Printable characters : code 32~127 인쇄 가능한 문자로 문자, 숫자, 구두점, 기타 기호 등을 나.. 2022. 7. 19.
JAVA - [백준] 2588번 곱셈 문제는 간단하다. 하지만 문제를 풀 수 있는 방법이 3가지가 있어서 따로 정리하게 되었다. math 나머지와 나눗셈 연산을 통해 1의 자릿수를 추출하는 방법 charAt() (2)를 String 으로 받아 charAt() 으로 각 자릿수를 추출하는 방법 String B = "abc"; char a b c index 0 1 2 B 에 문자열 abc 가 저장되어있을 때 문자열을 문자가 모인 배열이라고 보고 인덱스를 참조하여 해당 문자를 반환. 이때 반환되는 값은 문자(char, 아스키코드값)이다. 코드에서 정수로 사용하려면 char '0' 빼줘야 한다. 아스키코드 참고자료 ex) (B.charAt(i) - '0') toCharArray() : 문자열을 char 배열 형태로 반환해주는 메소드 문자열을 char.. 2022. 7. 15.
화이트 박스 테스트 검증 기준 커버리지 내용 구문(문장) 커버리지 Statement Coverage - 프로그램 내의 모든 명령문을 적어도 한 번 수행하는 커버리지 - 조건문 결과와 관계없이 구문 실행 개수로 계산 결정(선택), 분기 커버리지 Decicon,Branch Coverage - 각 분기의 결정 포인트 내의 전체 조건식이 적어도 한번은 참과 거짓의 결과를 수행하는 테스트 커버리지 - 구문 커버리지를 포함 조건 커버리지 Condition Coverage - 각 분기의 결정 포인트 내의 각 개별 조건식이 적어도 한 번은 참과 거짓의 결과가 되도록 수행하는 테스트 커버리지 - 구문 커버리지를 함 조건/결정 커버리지 Condition/Decicion Coverage - 전체 조건식뿐만 아니라 개별 조건식도 참과 거짓의 결과가 한 번.. 2022. 7. 12.
[AWS] RDS vs EC2 RDS - 간단하고 유지 관리가 적은 솔루션 EC2 - 원하는 DBMS를 선택해 직접 운영 Amazon RDS(Relational Database Services)는 하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같은 시간 소모적인 관리 작업을 자도화하면서 비용 효울적이고 크기 조정 가능한 데이터 베이스 서비스를 제공한다. Amazon EC2(Elasic Computer Cloud)는 크기를 조정 가능한 컴퓨팅 파워를 제공하는 웹 서비스. 참고 : https://medium.com/aubergine-solutions/comparing-rds-vs-ec2-for-postgresql-db-b2ca45c14b55 2022. 7. 8.
[AWS] VPN , VPC VPN(Virtual Private Network) 큰 규모의 조직이 여러 곳에 분산되어 있는 컴퓨터들을 연결하는 보안성이 높은 사설 네트워크를 만들거나, 인터넷을 활용하여 원격지 간에 네트워크를 서로 연결하고 암호화 기술을 적용하여 보다 안정적이며, 보안성 높은 통신 서비스를 제공하는 서비스 출처 : https://adguard-vpn.com/ko/what-is-vpn/how-does-vpn-work.html Amazon Web Service 는 VPC와 VPC Gateway를 통해 On-Premise의 VPN장비와 Amazon Web Services 간의 VPN을 연결할 수 있으며, 이를 통해 보안성 높은 하이브리드 클라우드 환경을 구현하여 원활한 클라우드 컴퓨팅 서비스를 지원할 수 있다. VPC(V.. 2022. 7. 5.
[AWS] 글로벌 인프라 용어 리전(Region) AWS에는 리전이라는 개념이 있습니다. AWS가 전 세계에서 데이터 센터를 클러스터링하는 물리적 위치를 리전이라고 합니다. 논리적 데이터 센터의 각 그룹을 가용 영역이라고 합니다. 각 AWS 리전은 지리적 영역 내에서 격리되고 물리적으로 분리된 여러 개의 AZ로 구성됩니다. 흔히 리전을 단일 데이터 센터로 정의하는 다른 클라우드 공급자와 달리 모든 AWS 리전의 여러 AZ 설계는 고객에게 여러 가지 이점을 제공합니다. 각 AZ는 독립된 전원, 냉각 및 물리적 보안을 갖추고 있으며 지연 시간이 매우 짧은 중복 네트워크를 통해 연결됩니다. 고가용성을 중시하는 AWS 고객은 여러 AZ에서 실행되도록 애플리케이션을 설계하여 내결함성을 한층 더 강화할 수 있습니다. AWS 인프라 리전은 가장 .. 2022. 7. 1.
[AWS] 주요 서비스 Compute Amazon EC2(Elastic Compute Cloud) : 가상화 서버. 이는 다양한 형태의 타입과 서비스에 따라 적합한 사양을 선택할 수 있으며, 사용량만큼 비용을 지불하는 컴퓨팅 서비스 Amazon Auto Scaling : 서버의 특정 조건에 따라 서버를 추가/삭제할 수 있게 해주는 서비스로 서버 사용량이 많은 경우 추가하고, 사용하지 않는 경우 서버를 자동으로 삭제할 수 있게 해주는 서비스 Amazon Lightsail : 간단한 가상화 프라이빗 서버(Virtual Private Server, 이하 VPS)가 필요한 개발자에게 웹 사이트와 웹 어플리케이션을 배포하고 관리하는 기능과 컴퓨팅, 스토리지, 네트워크를 빠르고, 손쉬우며, 저렴한 비용으로 제공해주는 서비스 Amazon .. 2022. 6. 28.
Iaas, Paas, Saas 클라우드 서비스 이용 방식은 크게 세 가지로 분류할 수 있다. IaaS(Infrastructure as a Services) 물리적 서버 (CPU, Memory, OS), 네트워크, 스토리지를 가상화하여 다수의 고객을 대상으로 유연하게 제공하는 인프라 서비스 Paas(Platform as a Services) Web 기반의 서비스 또는 애플리케이션 등의 개발 및 실행을 위한 표준 프랫폼 환경을 서비스 형태로 제송하는 서비스 Saas(Software as a Services) 구글의 Gmail이나 한컴 스페이스 등과 같이 응용프로그램을 인터넷 및 웹 브라우저를 통해 제공하는 서비스 클라우드 서비스 이용 방식 출처 : https://www.bmc.com/blogs/saas-vs-paas-vs-iaas-wha.. 2022. 6. 24.
데이터 마이닝(Data Minnig) 데이터 마이닝(Data Minnig) 대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 찾아내는 기술 데이터 마이닝은 대규모 데이터에서 의미 있는 패턴을 파악하거나 예측하여 의사결정에 활용하는 기법 데이터 마이닝은 데이터의 숨겨진 정보를 찾아내어 이를 기반으로 서비스와 제품에 도입하는 과정 통계분석은 가설이나 가정에 따른 분석, 검증을 하지만 데이터 마이닝은 수리 알고리즘을 활용하여 대규모 데이터에서 의미 있는 정보를 찾아낸다. 데이터 마이닝 절차 목적 설정 -> 데이터 준비 -> 가공 -> 마이닝 기법 적용 -> 정보 검증 데이터 마이닝 주요 기법 덱스트 마이닝 대량의 텍스트 데이터로부터 패턴 또는 관계를 추출하여 의미 있는 정보를 찾아내는 기법 304745비정형/반정형 데이터.. 2022. 6. 21.
NoSQL (Not Only SQL) NoSQL (Not Only SQL) NoSQL은 전통적인 RDBMS와 다른 DBMS를 지칭하기 위한 용어로 데이터 저장에 고정된 테이블 스키마가 필요하지 않고 조인 연산을 사용할 수 없으며, 수평적으로 확장이 가능한 DBMS 특성 특성(BASE) 설명 Basically Available 언제든지 데이터는 접근할 수 있어야 하는 속성 분산 시스템이기 때문에 항상 가용성 중시 Soft-State 노드의 상태는 내부에 포함된 정보에 의해 결정되는 것이 아니라 외부에서 전송된 정보를 통해 결정되는 속성 특정 시점에서는 데이터의 일관성이 보장되지 않음 Eventually Consistency 일정 시간이 지나면 데이터의 일관성이 유지되는 속성 일관성을 중시하고 지향 유형 유형 설명 Key-Value Store .. 2022. 6. 17.
728x90