본문 바로가기

전체 글189

[Spring] Private한 메서드 호출 자바의 접근 제어자 Private default protect public 같은클래스 O O O O 같은패키지 O O O 자손클래스 O O 전체 O 자바의 접근 제어자에 따르면 현재 PrivateMethodCall 클래스에서 Hello 클래스의 main() 메서드를 실행 할 수 없어야 한다. 하지만 Private한메서드를 호출할 수 있는 방법이 있다. 그방법은 다음과 같다. 1. Class 객체의 forName(String str) 를 통해서 Class 객체를 생성해준다. // Class helloClass = Class.forName(~); 2. 생성된 객체를 통해서 Hello 객체를 생성해 준다. // Hello hello2 = (Hello)helloClass.newInstance() 3. 1에서 생.. 2022. 5. 22.
[Spring] MVC 패턴 - 관심사의 분리 - 현재 getYoil 을보면 3부분으로 나뉘어 져있다 1. 입력 / 2. 작업 / 3. 출력 이각 부분을 관심사라고 한다. => 즉 해야할 작업 main() -> 3개의 관심사를 가지고 있다. ""OOP 5대 설계의 원칙 SOILD 1. SRP(단일 책임의 원칙) ==> 하나의 메서드는 하나의 책임만 가진다. 책임 == 관심사 "" 즉 main()은 관심사를 분리해야 한다. 분리 1. 관심사의 분리 2. 변하는것과 (자주)변하지 않는 것의 분리(Common code/ Uncommon code) 3. 공통 코드의 분리(중복 코드) 1) 입력 - Request.getParameter 2) 처리 3) 출력 2) 처리 3) 출력 1) 입력 - Request.getParameter 2) 처리 3) 출력 ===>.. 2022. 5. 22.
[DB/Oracle] 단일행 함수 - 문자 함수편 함수 설명 단일 행 함수 단일 행을 입력 받아 단일 행을 반환하는 함수 집계 함수 다중 행을 입력받아 단일 행을 반환하는 함수 분석 함수 다중 행을 입력받아 다중 행을 반환하는 함수 모델 함수 MODEL절에서 사용하는 함수 함수 설명 문자 함수 문자값을 조작하는 함수 숫자 함수 숫자 값을 조작하는 함수 날짜 함수 날짜 값을 조작하는 함수 변환 함수 값의 데이터 타입을 변환하는 함수 널 관련 함수 널을 조작하는 함수 비교 함수 값을 비교하는 함수 인코딩 디코딩 함수 값을 조사하거나 디코딩 하는 함수 환경 식별자 함수 인스턴스와 세션에 대한 정보를 제공하는 함수 계층 함수 계층 쿼리에서 사용하는 함수 컬렉션 함수 컬렉션 값을 조작하는 함수 xml 함수 xml 값을 조작하는 함수 JSON 함수 JSON 값을 .. 2022. 5. 21.
[DB/Oracle] CASE 표현식, 슈도 칼럼 , 바인드 변수 표현식 = 값으로 평가 될수 있는 리터럴, 연산자, SQL 함수 등의 조합이다. CASE 표현식 등가 비교식으로 deptno 의 값이 10일떄는 1을 , 20일때는 2를 그외의 숫자일 떄는 9를 나타내는 표현식이다. 검색 CASE 표현식 슈도 칼럼 : 테이블에 저장되지 않은 의사 칼럼으로, 쿼리 수행 시점에 값이 결정된다. 종류 - 일반 : ROWID, ROWNUM, ORA_ROWSCM - 계층 쿼리 : LEVEL, CONNECT_BY_ISLEAF< CONNECT)BY)ISCYCLE - 시퀀스 : CURRAL, NEXTVAL - 버전 쿼리 : VERSIONS_STARSCN, VERSIONS_STARTTIME 등... 바인드 변수(SQL PLUS 에서 가능 하며, SQL DEVELOPER 에서는 프로시저에.. 2022. 5. 21.
[DB/Oracle] SELECT 문자 리터럴(문자), 숫자 리터럴(숫자) 표현 SQL PLUS로 접속시 COL의 포맷을 정하여 표현 할 수 있다. 날짜 표기방법은 NLS 파라미터 설정에 따라 출력 포맷이 달라진다. 변경전 표현방법 변경후 표현방법 Oracle에서의 NULL 값은 빈문자 '' 와 동일하게 처리된다. 날짜의 산술 연산 일,월 * 날짜의 일 계산은 숫자로 + ( ) 해주면된다. * 월계산은 ADD_MONTHS( DATE, 숫자)를 통해서 수행되며, DATE 날짜에서 숫자만큼 증가 된다. 날짜간의 계산은 DATE - DATE 형식으로 진행하면된다. - 계산된 결과는 일로 표현된다. 2022. 5. 21.
[Algorithm] 로또 최대 등수 및 최저 등수 구하기 프로그래머스 알고리즘 테스트 문제 중 [초급] 아래는 내가 문제를 풀이한 방법이다. 내가 풀이한 다른사람풀이와 비슷한게 있었는데 그 사람의 풀이는 for문을 돌릴때 향상된 for문을 돌렸다 향상된 FOR 문을 사용하니 횟수를 따로 지정해 주지 않고 for문을 돌리니 훨씬 간결한 느낌이 들었다. 코드의 실행 시간도 거의 차이가 없지만 1(ms) 차이 정도 났다 2022. 5. 21.
[Algorithm/MAP] MAP의 표현방법 MAP 안의 요소를 표현하는 방법에 대해서 알아보자 * map의 요소를 한번에 확인하는 방법 1. map의 KEY값을 .keySet() 함수로 Set 형태로 RETRUN 받을수 있다. iterator를통해서 값을 하나씩 꺼내서 .get(Key keyt) 함수를 통해서 Value 값을 리턴 받을수 있다. 2. map.entrySet() 함수를 통해서 Set 값을 리턴 받을수 있는데 이를 향상된 FOR문을 통해서 for( Entry entrySet : map.entrySet() ) entry는 Key값과 Value 값을 갖는 Set을 얻으며 , getKey(), getValue() 를 통해서 요소를 확인 할 수 있다. 3. Map을 values() 함수를 통해서 Collection 객체로 형변환이 가능하며 .. 2022. 5. 21.
[Algorithm] Map.getOrDefault 프로그래머스를 통해서 신고자 누적 알고리즘을 공부하면서 알게된 매서드이다. Map의 메서드중 하나이며 매개변수로 ( Map의 key값과, Default 값이 들어간다.) return 값은 Set 값이다. 아래를 보면 name 이라는 String[] 이있고 이름을 key 값으로 map에 넣고 있다. 이때 만약 key값이 이미 들어가있으면 해당 value 값을 1씩 증가 시켜주는 for문을 돌리고 있다. 이때 map.getOrDefault(name[i], 0)+1 을 통해서 해당 key값이 이미 들어가있다면 해당 key값의 value를 가지고 나오게 되고,, key 값이 map에 존재하지 않다면 0이 return되며 +1 하여 1이 출력되게 된다. 처음에 이 메서드가 있는줄 모르고 replace를 통해서 해.. 2022. 5. 20.
[Spring] HTTP/ TOMCAT 전반적인 내용 만약 1대의 PC에 여러개의 서버를 가지고 있다면(Email Server, File Server, Web Server) 요청을 어떻게 받냐면 어떤 서버에 요청을 보내는지 확인하기위해 포트 번호를 적어 줘야 한다. 웨서버의 경우 :80 인데 80의 경우는 생략이 가능하다. 111.22.33.44:80 -> 111.22.33.44 로표현가능 클라이언트가 포트번호를 붙야줘야 하는데 그렇다면 서버는 이미 해당 포트번호와 binding 되어 있어야 하며, 서버는 Listening 상태로 기다리고 있다. 포트 번호는 0~1023 번까지 예약되어 있고 그 이상은 65535개의 포트를 사용 할 수 있다. Web Server : Web을 Service 한다. WAS란 : Web Application 을 Service 한.. 2022. 5. 20.
[Linux/C] Makefile Linux 에서 컴파일을 할때 gcc 를 통해서 컴파일을 진행했다 gcc 의 옵션들을 사용해서 컴파일 했었는데 옵션으로 -c : 의경우는 .c 파일을 통해서 ~~.o 인 오브젝트 파일을 만들때 사용했었다 ex) gcc -c main.c --> main.o 가 생성됨 // 동일한 방법으로 gcc -c -o main.o main.c --> main.c 파일을 통해 main.o 파일을 생성하였다 -o 옵션으로 원하는 파일명으로 만들수 있다 gcc main.c 의 경우는 a.out 이라는 이름의 실행 파일이 생성되어 진다. gcc -o test main.c 의 경우는 test 라는 이름으로 실행 파일이 생성되어 진다. 여러개의 파일을 묶어서 컴파일 할경우는 소스파일들을 나열하여 진행했다 gcc main.c su.. 2022. 5. 19.
[AWS] Local에서 AWS 프로그램 실행시키는 방법 보통 로컬환경에서 프로그램을 만들고 톰캣을 시행할때는 localhost:9090/start/hello AWS 서버 주소:포트번호/경로 2022. 5. 19.
[Spring] HttpServletRequest, HttpServletResponse * interface 간의 상속은 extends * class 간의 상속도 extends, extends는 1개 밖에안되며, * class 가 interface를 상속할때는 implements를 사용한다. Spring 에서 HttpServletRequest, HttpServletResponse 두 객체는 클라이언트가 -> 서버로 요청하는 것과, (HttpServletRequest) 서버 -> 클라이언트에게 답변을 보내는 것을 활용할때 사용한다. HttpServletReqest를 통해서 얻을수있는 정보들은 많은것들이 있다. 사용자가 서버에게 "http://localhost:9090/ch2//requestInfo" 으로 요청을 했다고 생각하면, 아래와 같은 메서드들로 통해서 얻을수 있는 데이터들이 있다. 또.. 2022. 5. 19.