#################1
1> algorithm 설계방식
1. 탐색형
-비선형 구조 > 트리,그래프 >백트래킹(재귀함수) 이용
-선형 구조 > 배열,리스트 > 반복문 이용
2. 관계형
- 점화식
2> greedy algorithm
1. 최소신장 트리 - 프림(no cycle하며 최소엣지만 선택),
- 크루스칼(최소 엣지 잡고 인접한 정점에서 최소 엣지,단 노사이클)
2. 다익스트라 - 방향성있는 가중치 그래프, 임의의 두정점에서 최소 거리 구할때
3. 거스름돈 문제( 단, 배수/약수)
#################2
1. 람다식
데이터만 넘기는게 아니라 매개변수로 로직(=함수)를 넘김. 내부는 익명구현객체로 됨.
함수적 프로그래밍을 위해. 자바8
추상 메소드가 하나인 인터페이스를 쉽게 구현해서 사용하기 해.
https://blog.hanumoka.net/2018/11/16/java-20181116-java-lambda/
@함수적인터페이스
특징: 오직..추상메서드 1개
람다식 사용방법: (,...)->{ ,...}
람다식 사용목적은 인터페이스가 가지고 있는 메소드를 간편하게
즉흥적으로 구현해서 사용하는 것이 목적이다.
[람다식 출현배경]
--1> 인터페이스를 구현한 클래스를 재사용할 수 있는 장점이 있지만,
재사용이 필요하지 않는 메소드를 만들어 사용해야 할때도 있을 것이다.
그런 것들을 클래스로 구현하게 된다면 불필요한 class파일이 늘어만
가게 될 것이다
--2> 이를 해결 위해 익명구현객체 사용.
--3> 이보다 더 간편하게 쓰려고 람다식 이용.
2. 리터럴 초기화 방법
3. comparable vs comparator
- 이중 정렬 방식(처음 비교값 같을 경우, 다음 기준으로 정렬)
- return 할때 - 이용 (ex: return arg0 - arg1; )
4. 리스트 안쓰고 배열 클래스 선언
##################3
1. 전략 패턴 cf) composite, template 패턴 , DI
2. 리다이렉트 방식 vs 포워드 방식
- request, reponse 객체, 장점, 쓰는 이
참조 :
https://sdevstudy.tistory.com/26
3. spring mvc 구조
4. 웹 개요.
- front controller - handler(contr) 역할
5. Gson, jackson 역할
- 자바객체 <-> JSON형식 가능케하는 라이브러리
6. JSP 필터
- 톰켓(컨테이너)가 ---|--|--|--- [ servlet ] 에 request 전달하기전에 필터 거침
( | = filter들 )
7. StringBuffer vs StringBuilder 차이
- String + (concate)는 느리다..
- 멀티스레드, 싱글스레드, 동기화
8. OptionalInt 클래스 -> 최대 최소값 구하기 & 평균 구하기
- OptionalInt op = Arrays.stream(arr).max();
- int max = op.getAsInt();
##################4
1. get방식 vs post방식
https://mommoo.tistory.com/60
http 프로토콜이 제공하는 7가지 메서드 중 웹서비스 개발에 이용.
공통점 : 둘다 서버에 '요청'하는 메서드.
: http프로토콜이므로..데이터 보낼때 http패킷씀 구조 =>헤더와 바디가 있음
: 서버에 요청할때, 전달하는 데이터가 있을수 있음(예: id,pw)
: get방식은 : 헤더의 URL에 ?id=hb&pw=123 이런식으로 데이터를 보냄
: 반면 post방식은 바디의 부분에 데이터를 넣어서 요청
:
GET 방식에서 BODY에 특별한 내용을 넣을 것이 없으므로 BODY가 빈상태로 보내진다.
그러므로, 헤더의 내용중 BODY 데이터를 설명하는 Content-Type이라는 헤더필드는 들어가지 않는다
2. JSP란? 특징?
-서버사이드 스크립트 언어
https://gmlwjd9405.github.io/2018/11/03/jsp.html
3. DTO vs VO
readOnly
https://mommoo.tistory.com/61?category=582808
인스턴스 개념 vs 리터럴 값 개념
getter,setter vs getter
4. URL vs URI
https://mommoo.tistory.com/43?category=582808
URL: 파일 위치를 알려줌.
URI : 특정 페이지로 이동할 수 있는 문자열.
5. string.split()사용시 의점
//주의: 패턴 스트링에 정규표현식 사용시..메타데이타가 포함되어 있을 경우
//해당 캐릭터는 *, ?, +, [, {, (, }, ^, $에 해당한다.
//따라서 \\을 추가해줘야함.
String[] arr= input.split("\\+|-");
StringTokenizer st= new StringTokenizer(input,"\\+|-",true);
##################5
1.
DAO : 데이터 처리를 담당, 하나의 DAO는 하나의 테이블과 연결되어 데이터 처리를 한다.
스프링 MVC의 구조로 DAO(데이터 처리를 담당)에서 Mybatis를 호출하고, 여기서 처리된 데이터를 VO(데이터를 전달하는 역할) 객체에 담아 Service, Controller 을 거쳐 화면으로 보내게 된다.
https://all-record.tistory.com/176?category=733072
2. 스프링 컨트롤러 메소드
- 리턴타입 void vs String
- @modelattribute vs Model
https://engkimbs.tistory.com/694
-
Model과 ModelAndView의 차이
3. 스프링 home.jsp 동작원리
4. mybatis 콘솔에서 로그보는 작업- 별도처리
https://all-record.tistory.com/176?category=733072
https://its-easy.tistory.com/21
5.tiles 설정
https://epthffh.tistory.com/entry/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%83%80%EC%9D%BC%EC%A6%88-Spring-Tile-%EC%84%A4%EC%A0%95%ED%95%B4%EB%B3%B4%EA%B8%B0
##################6
1. WAS(web app- server )
- 구성: web서버 , web 컨테이너
https://opentutorials.org/module/3569/21238
https://yang1650.tistory.com/8
2. JSONP 기법
http://bitly.kr/fC0VCA
http://dev.epiloum.net/1311
https://kingbbode.tistory.com/26
3. DBCP
https://aljjabaegi.tistory.com/402
JDBC만을 사용할 경우라면 DB 연결 시 마다 Driver를 로드하고 커넥션 객체를 얻는 작업을 반복하죠.이 부분을 효율적으로 처리하도록 바꾸는 것이 DBCP의 역할 입니다.
WAS 실행 시 미리 일정량의 DB 커넥션 객체를 생성하고 Pool 이라는 공간에 저장해 둡니다.그리고 DB 연결 요청이 있으면, 이 Pool 이라는 공간에서 Connection 객체를 가져다 쓰고 반환 하게 됩니다.
4. spring 컨테이너
- IoC , DI
https://minwan1.github.io/2017/10/08/2017-10-08-Spring-Container,Servlet-Container/
###################7 ( 스프링)
1.
spring_chapter1 - 생성자 방식과 설정 메서드 방식을 이용한 DI 선언하기
http://bitly.kr/ufzKAL
스프링에서 다른 객체를주입 받기 위해 <constructor-arg> 태그와 <property> 태그의 ref와 value속성을 사용했다.
<bean id="helloformat" class="ktko.HelloFormat">
<property name="format" value="Hello %s!!"></property>
</bean>
<bean id="greeter" class="ktko.Greeter">
<constructor-arg ref="helloformat"/>
http://bitly.kr/h03Kmc
http://bitly.kr/gO9rTg
<bean id="greeter" class="spring_chapter1.Greeter">
<property name="format" value="%s", 안녕하세요!"/>
</bean>
> key는 id인 greeter이다.
> id를 통해 class값을 얻어온다.(key , value관계)
> 그 때, 디폴트 생성자를 통해 class="spring_chapter1.Greeter생성시킨다.
> 따라서 디폴트 생성자가 반드시 있어야함.
> property란 getter,setter로 접근가능한 정보를 말한다.
> 따라서 name인 "format"을 읽고 setFormat을 호출을 한다.
2. @RestController
3. @PathVariable
4. @Component vs @Controller 비교
https://namocom.tistory.com/421
###################8 (자바스크립)
1. 프로토타입 메서드
2. jsonp
3. $.fn.(메서드이름){ } = 사용자 정의 메서드를 정의함.
=> 메서드 정의 후 지시자.(메서드이름)으로 사용가능
4. rest 방식 in js
5. bootstrap - container 와 container-fluid 의 차이점 , class= "row"
6. Ajax 정의.
장. 단점
https://coding-factory.tistory.com/143
7. REST cf) Ajax
- REST방식이 데이터를 호출하고 사용하는 방식을 의미하고,
Ajax는 이를 이용하는 수단에 가깝다고 할수있다.
####################9
1.
* Retrofit의 장점
1) 서버를 향해서 네트워크 통신 연결/해제에 대해서 체계적으로 다뤄줘야하는데, 이러한 관리를 해줍니다.
2) 서버로 연결이 된 후에는, 요청을 데이터 Format에 맞춰서 요청해 주고, 데이터를 parsing하여 응답을 받을 수 있습니다.
3) 데이터를 가져와서 각종 parsing 라이브러리를 통해서 원하는 요구에 맞게 사용이 가능합니다.
4) 각종 에러처리를 원활하고 쉽게 해줍니다.
Retrofit2: 일반 application에서 rest통신 지원 라이브러리
REST API 호출용 자바 라이브러리
REST API를 인터페이스 형태로 지원
Retrofit2는 gson-converter를 요구함.
gson-converter : Retrofit이 객체/JSON 변환에 사용
이것도 라이브러리에 추가
레트로핏 => (gateway_server 프로젝트 참조)