분류 전체보기 219

강의5

셀레니움 - > 프로그램을 통해서 제어를 하고 필요한 정보를 가져올 수 있다. 셀레니움은 사이트의 구조가 너무복잡해서 JSOUP가지고 처리하기 어려울때 편하게 사용할 수 있다. 셀레니움쓰기위해 필요한게 몇가지가 있다 1. java관련 jar파일 2개(java client, selenium) (일반적으론) 2. chrome Driver (맥이면 동작이 잘 안될수 있다) chrome버전과 꼭 맞춰주어야 한다. chrome driver는 어디에서든 불러서 킬수있어야하기때문에 패스를 등록해놓는게 좋다. 제일먼저 브라우저를 열게된다 HTTP는 쉽게생각하면 편지봉투를 생각하면된다 헤더는 편지를 싸고있는 겉 표지이고 바디는 실제 내용물의 정보를 담고있따.

강의4

크롤링을 막아둔 사이트는 403 (FORBIDDEN)에러가 난다 왜냐하면 그 사이트에서 막아둿기 때문... 하지만 유저는 브라우저로 볼때 보인다 이유는 브라우저가 아닌것들을 막아놧기때문에.. 내가 브라우전지 아닌지의 정보는 http헤더에 정보를 싣어서 보내는것에 달려있다. 크롤링을 할때 단계 1. 대상URL을 찾는다.(2가지 스타일이 있다. 한번에 모든정보를 다 나타내는 url과 ajax로 그때그때 불러오는 스타일) 2. HTML 파싱을 한다(상세주소들을 얻어온다)->상세주소당 URL을 연결하고->이미지 태그를찾고->save해야한다. 정상적인 브라우저의 접근을 체크하는것이 -> user-agent를 이용해서 체크 or 브라우저에서는 보이지 않는 값을 전달 or 특정한 파라미터를 쓰는겅우(CSRF가 가장 ..

강의3

inputStream => read /내용물을 빨아드린다 outputStream => write / 내용물을 쓴다 (복사) socket에는 TCP를보면 2가지 메서드가 있다 1. getInputStream() 2. getOutputStream() 네트워크는 이것에서 URL로 바뀌는것이다 URL ->in ->out 다운로드 받으려면 1. 대상 URL을 결정 ->GET방식(이미지같은경우 대부분 GET방식이다) ->브라우저에서 확인 가능하면 좋다. 2. URL 객체를 생성해야한다. ->getInputStream(), openStream등을 하면 InputStream을 얻어온다. 3. OutputStream구하기 -> 대표적으로 FileOutputStream 4. 읽고 쓰기를 한다. -> Files.copy( ..

강의1

미니프로젝트 금기사항 ( 백/프론트를 나눠서 하지말아라) 크롤링은 JSOUP과 셀레니움을 이용해서 배울 예정 MSA는 요즘 쿠버네티스나 도커를 많이 쓴다. DB는 오라클서비스로 팀단위로 디자인은 meterial 디자인을 쓸것이다 리액트에서 어려운부분은 redux라고 생각하는데 redux tool kit을 이용할 예정 함수형 component로 사용할것이다(class형 component는 거의 안쓴다)

강의14

AOP에서는 @Around가 가장 중요하다 이건 자바리플렉션이다 리플렉션은 주어와 목적어가 바뀌는것 class를 로딩할때 사용하는메서드 Class.forName() pjp.proceed() 는 invoke()같은것이다 (메서드를 실행하는것) 흔히 트랜잭션이라고 하면 이것을 데이터베이스 용어라고 생각하는데 정확히 단어의 뜻은 거래라는 뜻이고 비즈니스 용어이다. 그래서 트랜잭션의 단위가 비즈니스의 단위인것이다. 트랜잭션을 가장쉽게생각하는것은 ALL or Nothing -> 되면 다되고 아니면 다안되는것 트랜잭션은 ACID원칙을 따라간다 반정규화는 언제하나? => 스토리지를 손해보면서 성능의 향상을 원할때 한다. 정규화를 하면 중복된 데이터를 제거해 스토리지를 효과적으로 쓰는것이다. 아무조건없이 join하는것..

SPRING/강의 2021.06.24

강의14

aop는 Aspect Oriented Programming Aspect -> Cross concern - > 횡단관심사/ 공통관심사 이것들의 의미하는 것은 핵심로직은 아니지만 선조건, 부가기능 등등을 cross concern이라고 한다. db에서 close를 하면 내부적으로는 socket연결이 끊어지는것이다 근데 커넥션풀을 이용한다면 close를 하면 안되는건데 왜 autoclose를 할까? 프록시덕분에... 스프링은 AOP설정만 해주면 autoProxy해준다 지금부터 모든 서비스의 실행시간을 찍어(같은 명세(logging, 보안, 트랜젝션등..) 그래서 추상이라고 생각해도 된다) advice -> 실제로 우리가 만들어낸 코드(로거를 찍거나 하는것) pointcut -> 그 객체라는 여러개의 메소드중에 ..

SPRING/강의 2021.06.24

강의 13

ajax시 문제가 생기는 부분중 하나가 cors이다. input type file 은 유일하게 인풋중 readOnly이다. (경로를 수정하면 해킹이 되어버리니까) cors를 해결하기위한 몇가지 방법이 있다 첫번째는 allow origin 두번째는 스프링에서 @CrossOrigin 다른방법은 JSONP를 이용해서 가능하다 -> GET방식으로만 가능하다 (p는 pandding.. 지연이라는 소리이다) jsonp는 자바스크립트 파일을 달라는 것이랑 같다. 그러면 resource라고 여겨지지 않기 때문에 cors에 걸리지 않는다. jquery cdn걸면 그 링크에 있는 자바스크립트의 파일을 가져와서 돌리는것이기 때문에 보안모델에 걸리지 않는다.(cors) proxy를 가장 쉽게 이해할 수 있는것은 영화 본아이덴..

SPRING/강의 2021.06.24

강의11

전달할때 page번호나 size는 uri로 받으면 안된다. 왜냐하면 동일한페이지에서는 동일한내용들만 있어야한다 (id값이기때문에) 그래서 이런경우에는 쿼리스트링으로 받는게 맞다. 응답은 -> 목록리스트, 페이지정보, 그리고 전달받았던애들도 그대로 돌려주는게 편하다. 3단구현이란 제일처음 인터페이스를 만들고 상속받아 추상클래스에서 어느정도 구현을하고 진짜 쓸 클래스에서 상속받아 쓴다

SPRING/강의 2021.06.23