전체 글 45

HTTP정리 인프런 강의 (모든 개발자를 위한 HTTP 웹 기본 지식)

[인터넷 네트워크] 인터넷 통신 - 클라이언트와 서버 사이에 인터넷이 있을때, 수 많은 중간 노드를 거쳐서 가게 됨. - IP(인터넷 프로토콜) 주소 부여, 지정한 IP 주소에 데이터 전달 패킷이라는 통신 단위에 데이터 전달. ip 패킷 정보 구성 출발지ip, 목적지ip, 기타 - 외부 전송 데이터 - 내부 IP 프로토콜의 한계 비연결성 패킷을 받을 대상이 없가나 서비스 불능인데 패킷이 전송이 됨. 비신뢰성 패킷이 사라지거나 여러개 보냈을때 순서대로 도착하지 않을 수 있다. 데이터가 크기에 따라서 패킷이 나눠서 전송되는데 그 패킷들이 하나의 노드를 이용한다는 보장이 없어 속도에 차이가 날 수 있음. 프로그램 구분 IP를 사용하는 서버에서 둘이상의 앱이 동작하고 있으면 구분해서 할 수 있나? 예 ) 게임을..

통신 2022.03.02

Blind SQL injection

면접을 준비하면서 찾게된 지식. 해킹은 노가다 https://lucete1230-cyberpolice.tistory.com/94 [Bee-box] Blind SQL 인젝션 - Boolean Based 이번 포스팅은 Blind SQL인젝션 Boolean Based 방법 입니다. 실습하는 모든 공격은 실제로 사용하시면 안됩니다. 허용받지 않은 서비스 대상에 해킹을 시도하는 행동은 금지하며, 모든 법적 책임은 사 lucete1230-cyberpolice.tistory.com 대응책으로 시큐어 코딩 1. 입력값 검증(특수문자, 명령어 입력 제한), 길이 제한 등 2. 취약코드 작성 금지 String id = 'userId' String query = "select * from table where id =" +..

통신 2022.02.25

SSR(Server Side Rendering) 과 CSR(Client Side Rendering) (SPA, MPA)

90년대 중반까지 모두 Static sites 서버에 모든 html이 있었고, 사용자가 서버에 배포되어 있는 html 문서를 보는 형식이였다. 페이지 전체가 업데이트 되는 방식. 96년 iframe 태그가 도입됨. 문서를 받아와서 사용할 수 있게 됨. 98년 fetch API의 원조 XMLHttpRequest 서버에 필요한 데이터만 받아와서 JS로 페이지에 업데이트 하는 형식. 2005년 AJAX도입으로 SPA가 트렌드로 됨. CSR 서버에서 HTML 파일을 보내고, 앱에서 필요한 js 링크만 들어있음. HTML에 들어있는게 없어서 빈화면만 보이게 됨. 링크된 주소로 JS를 받게 되는데 여기에 필요한 로직 또는 라이브러리 프레임워크가 다 포함이 되어 있음. 굉장히 사이즈가 커서 다운로드 속도가 걸림. 초..

JS 2022.02.23

@RequestParam List Map 형식 받기 (Spring 리스트 맵 파라미터 받기 )

[{"itemCode":"BTCKRW","tranNo":"WAS1005_20220207_0000000047","ordNo":"200120220207000000000047","excNo":"300120220207000000000047"},{"itemCode":"BTCKRW","tranNo":"WAS1005_20220207_0000000046","ordNo":"200120220207000000000046","excNo":"300120220207000000000046"},{"itemCode":"BTCKRW","tranNo":"WAS1005_20220207_0000000045","ordNo":"200120220207000000000045","excNo":"300120220207000000000045"}] 위와 ..

JAVA 2022.02.08

Vue.js Pagination Button (처음으로, 이전, 다음, 마지막 페이지 이동처리)

페이징 작업을 해야해서 찾아봤다. 모르겠다. 고로 만든다. var pageNum = 1, pageCount= 10, pageNumCount = 5, startPageNum = 1, endPageNum = 5, pageLimit = 5; var authSettings = new Vue({ el: '#contents', data: { accessLogList : [], pageNum : 0 }, mounted(){ searchList(); }, methods: { firstPage:function(){ pageNum = 1; startPageNum = 1; endPageNum = pageNumCount; contentsVue.pageNum=pageNum; }, prevPage:function(){ if(st..

JS 2022.01.27