본문 바로가기

전체 글130

정규표현식(정규식, 표현식) Java 정규표현식 Java 정규표현식 자바에서는 정규식(정규표현식)을 이용해서 쉽게 특정한 패턴을 가지는 문자열을 검색하거나 패턴을 체크 할 수 있다.표현식뜻.하나의 임의의 문자 (백슬래시(\) 제외)?문자가 없거나 하나가 있음*문자가 없거나 하나 이상+하나 이상의 문자^문자열의 시작$문자열의 끝|or연산[]문자의 집합 또는 범위{}문자 및 문자열 반복 횟수 또는 범위()괄호 내 문자들을 하나의 묶음으로 인식해서 사용[0-9]숫자[a-z]알파벳 소문자[a-zA-Z]알파벳 대·소문자\d[0-9]\D숫자를 제외한 문자\s공백\S공백을 제외한 문자\w알파벳 또는 숫자\W알파벳과 숫자를 제외한 문자\특수문자를 패턴에 유효하게 사용하고싶을 때 특수문자 앞에 백슬래시를 넣어준다.(?i)대소문자 구분 없음 자주 쓰.. 2018. 6. 5.
Interface, Abstract Interface, Abstract Interface일종의 추상 클래스오직 추상메서드와 상수만을 멤버로 갖는다.Implements 키워드를 사용해서 class에서 상속받아 사용한다.상속의 관계가 없는 클래스간 서로 공통되는 로직을 구현하여 쓸 수 있도록한다.Extends는 하나의 클래스만 상속 가능하나 Interface는 다중 상속이 가능하다.스프링에서 객체와 객체의 관계를 약화시키기 위해 사용한다. - DI(Dependency Injection)객체와 객체를 직접 연결시키는 것 보다는 인터페이스를 이용해 간접 연결 시키는 것이 나중에 객체를 수정하기에 편리하다. Abstract추상메서드를 하나 이상 가진 클래스자신의 생성자로 객체 생성 불가능하위 클래스를 참조하여 상위 클래스의 객체를 생성한다.하위 클.. 2018. 5. 31.
웹서버 vs WAS 웹서버 vs WAS Web Server클라이언트(브라우저)의 요청을 받아 html문서, 이미지 등의 정적 콘텐츠를 클라이언트에게 전달하는 일을 하는 서버이다.웹 서버는 정적인 웹페이지만 서비스한다. 파일을 서버에 마련해두고 원하는 문서나 이미지를 클라이언트에게 단순히 보내주기만 한다.아파치, 웹투비 등 WAS(Web Application Server)클라이언트의 요청이 오면 새로운 동적 웹 페이지를 만들어서 고객에게 전달해준다. JSP를 번역해서 Java 파일을 만들고 Java를 다시 번역해서 class 파일을 만들어 컨텍스트에 올려서 클라이언트에게 전송한다.was는 언어를 번역도 하고 새로운 웹페이지도 만들 줄 알아야 한다. 톰캣(tomcat) : 아파치에서 만든 서버로 무료이다. 레진(resin) :.. 2018. 5. 31.
Overloading vs Overriding Overloading vs Overriding Overloading(오버로딩)같은 이름의 메소드를 여러개 정의하는 것매개변수의 타입이 다르거나 개수가 달라야 한다.return type과 접근 제어자는 영향을 주지 않음. Overriding(오버라이딩)상속에서 나온 개념상위 클래스(부모 클래스)의 메소드를 하위 클래스(자식 클래스)에서 재정의 2018. 5. 31.
Java란? JAVA JAVAJAVA는 미국의 선 마이크로 시스템즈가 개발한 객체 지향 프로그래밍 언어이며, 현재는 오라클사가 판권을 가지고 있다. 웹어플리케이션과 안드로이드에 특화되어있다. (일반 어플리케이션은 거의 개발하지 않음) JVM(자바 가상 머신)만 설치하면 컴퓨터의 운영체제에 상관없이 작동한다. 즉, 운영체제에 독립적이다.JAVA를 설치하면 jre가 설치되는데 이게 jvm(자바가 동작하기 위한 환경)이다. C언어는 컴파일하면 바이너리 코드(이진코드)로 변환된다. 이진코드는 운영체제마다 다르며 윈도우를 번역해서 만든 이진코드는 리눅스 OS에서 알아 듣지 못한다. (운영체제에 종속적이다.)리눅스용 C컴파일러(gcc)와 윈도우용 C컴파일러(boland c, visual studio)는 다르다.자바는 JVM이 .. 2018. 5. 31.
[MyBatis] '${필드명}'과 '#{필드명}' '${필드명}'과 '#{필드명}' '${value}'과 '#{value}'MyBatis에서는 쿼리 내에 ${value}과 #{value}을 사용할 수 있다.PreparedStatement를 사용하면서 java에서는 파라미터를 ?로 썼었는데, 이게 MyBatis에서는 #{value}으로 대체된다. #{value} parameterType에는 반드시 같은 이름의 변수가 있어야한다. DB에서 데이터를 가져와 select 쿼리로 데이터를 보낼 때는 resultType에서 지정한 클래스 안에 각 필드들에 대한 변수가 모두 있어야 한다. set변수명을 다 일일이 호출해 데이터를 넣어 객체를 만들고, 그 객체를 리스트에 저장해 보낸다. #{value}이 PreparedStatement와 같이 Mapping이 나중에 .. 2018. 5. 31.
[codility] MaxProductOfThree MaxProductOfThree MaxProductOfThreeMaximize A[P] * A[Q] * A[R] for any triplet (P, Q, R).Task Score100%Correctness100%Performance100% 다시 painless레벨로 오니까 마음이 편해진다.. 자꾸 쉬운거만 하려구 하면 안되지만 ㅠㅠㅠ단순하게 생각하면 세개를 뽑아 최대값을 구해야하니까 맨 위 세개만 뽑아 곱하면 된다.라고 생각할 수 있지만, 만약 음수나 0값이 포함돼있다면 어떨까?정렬 후 A = {-100, -1, 0, 1, 2} 가 된다면, 이런 방식으로 구했다가는 0이 나오게 된다. (-100 * -1 * 2) = 200이라는 큰 값을 구할 수 있는데 말이다.그래서 음수나 0이 두개 이상이고 마지막 값.. 2018. 5. 24.
[codility] MinAvgTwoSlice MinAvgTwoSlice MinAvgTwoSliceFind the minimal average of any slice containing at least two elements.Task Score100%Correctness100%Performance100% correctness 100%에 performance 20%인 코드..솔직히 이중 for문 넣으면서 시간초과 나올거란건 예상했다 ㅎㅎ..나올 수 있는 모든 경우의 수를 다 배열에 넣어서 하나하나 다 값을 비교했다. 항상 느끼는거지만 이렇게 설명하면서 왜 점수가 낮게 나오는지 충분히 알게되는 것 같다.ㅋㅋ x// you can also use imports, for example:// import java.util.*;​// you can write .. 2018. 5. 24.
[codility] GenomicRangeQuery GenomicRangeQuery GenomicRangeQueryFind the minimal nucleotide from a range of sequence DNA.Task Score62%Correctness100%Performance0% 오늘도 시작은 correctness 100%에 performance 0% ^^~! 제일 작은 문자를 넣어서 숫자로 바꿔주었다. 오늘도 이중포문이 문제인가~ 하고 이중포문을 없애주려고 방법을 바꿔봤다. ​x// you can also use imports, for example:// import java.util.*;​// you can write to stdout for debugging purposes, e.g.// System.out.println("this is .. 2018. 5. 24.
[codility] PassingCars PassingCars PassingCarsCount the number of passing cars on the road.Task Score100%Correctness100%Performance100% 자동차가 지나갈 때마다 짝을짓는데 (0인경우, 1인경우) 이렇게 짝을 짓는다. 그런데 앞의 0인 경우보다 앞에 등장한 차는 짝을 짓지 않는다. For example, consider array A such that: A[0] = 0 A[1] = 1 A[2] = 0 A[3] = 1 A[4] = 1We have five pairs of passing cars: (0, 1), (0, 3), (0, 4), (2, 3), (2, 4). 그래서 그냥 하나씩 짝을 지어줄 필요 없이 count하는 식으로 했다.0이 한번.. 2018. 5. 23.