태그

2019년 6월 20일 목요일

[팁]

톰켓 재시작 안하고도 jsp변경 적용
https://cafe.naver.com/pointcode/70


자바 저장 시 톰캣 자동 재시작 방지 (톰캣 Auto Reload)
https://intro0517.tistory.com/149


이클립스 창분할 단축키
1-1. 세로분할
Ctrl + Shift + { 

1-2. 가로분할
Ctrl + Shift + _


개발자 폰트
https://www.dafont.com/bitstream-vera-mono.font

2019년 6월 8일 토요일

[Eclipse] eclipse 파일검색 방법


현재 파일에서 특정 문자를 찾거나 찾은 문자를 교체하는 방법 (단축키:CTRL+F)

프로젝트에 포함된 리소스(여기서는 파일)중에 찾는 방법 (단축키 : CTRL+SHIFT+R)

에디터 크게,작게 보기( ctrl + , ctrl - )

2019년 6월 7일 금요일

[자바]String, StringBuffer, StringBuilder 속도 실험 (시간 측정)

String, StringBuffer, StringBuilder 속도 실험 (시간 측정)

:http://egloos.zum.com/deblan2/v/419830

: greedy 문제 중 '30' 풀다가 string concate 너무 느려서 stringbuffer로 바꿔주었더니
: 시간초과 해결! 

[공부요약] 06

#################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"/>
</bean>

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 프로젝트 참조)



2019년 6월 5일 수요일

[자바] Stream Class

참조 : https://futurecreator.github.io/2018/08/26/java-8-streams/

예: String 배열을 Int 배열로 바꾸기

String arr[] ={"a",...};
int arr2[] = Arrays.asList(arr).stream().mapToInt(Integer::parseInt).toArray();

2019년 6월 4일 화요일

게시물

DP 공부