평소에 서버사이드 쪽만 신경쓰다가 프론트 쪽을 만지게 되었는데, form에 대해서 새로운 사실(?) 을 알게 되었다. 처음에는 form에서 작업을 하다가 여러 체크박스를 선택하고 새로고침을 하면 이전에 체크박스가 해제되는 줄 알았다. 물론 백단에서는 form에 있던 element를 저장하고 체크했던 체크박스를 프론트에 나타나겠끔 만들었다. 다시 말해서 내 의도는 많은 체크박스들 중에서 몇 개의 체크박스를 선택하고 '검색' 버튼을 누르면 전에 선택한 체크박스는 남고, 새로고침(또는 F5)를 누르면 체크했던 체크박스가 해제를 할 수 있도록 만드려 했다.
분류 전체보기
이번 주제는 http와 https에 대해 간단히 다뤄볼까 하다. http(HyperText Tranfer Protocol) 특징 1. 영어로 된 것을 직역하면 하이퍼텍스트 교환 프로토콜이다. 다시 말하면 웹 서버와 브라우저 간 하이퍼텍스트 문서를 교환하는 프로토콜을 의미한다. 2. 암호화없이 교환하기 때문에 도중에 해커가 데이터를 탈취하거나 변조 될 수 있는 위험한 면이 있다. 3. 포트번호는 80이다. https(HyperText Tranfer Protocol Secure) 특징 1. 웹 서버와 브라우저 간에 데이터를 교환하기 전 SSL나 TLS 프로토콜을 통해서 데이터를 암호화를 시키고 전송하는 프로토콜이다. 2. 전송방식은 크게 대칭키, 공개키 나눠진다. 3. 포트번호는 443이다. 4. https..
1달 동안은 딱히 해 볼만한 일이 생각나지 않아, 일단 적어도 1주일에 2번정도는 블로그에 글을 써서 공부를 하고자 결심해서 지금도 진행중이다. 아직까지는 꾸준히 하고 있기는 하지만, 무언가 딱 집중력있게 하는 것 같지가 않아서 내가 공부를 제대로 한건가 라는 의문점이 들기도 하다. 사실 여태까지 쓴 글을 다시 기억할려고 해도 하지못하는걸 보면 많이 부족한 느낌도 들기도 하다. 회사에서도 일할 때도 집중력있게 못하는 느낌이 들기도 하고... 일은 그래도 순조롭게 하는 거 같고, 그렇다고 잠을 못자는 것도 아닌데 산만해진다는 느낌 이 든다. 가만히 생각해보면, 책 읽는 것과 상대방 말을 듣는 거랑 연관이 있다고 생각한다. 이 2가지 경우에도 집중력이 없으면 무슨 내용인지 이해를 못하기 때문 이다. 그래서 ..
기본적으로 캐싱은 접근되어진 데이터들의 뭉치들을 저장하는 능력을 의미한다. 그래서 웹 자원을 효율적으로 쓰기 위해서는 캐싱이라는 부분이 중요하다. 마침 Rest의 가장 큰 특징인 부분이 바로 Cacheable이고, Http에 대한 리소스들을 캐싱을 하게 되면 성능에 있어서 이점을 가지게 된다. 클라이언트는 서버를 위해 캐싱된 응답을 반환해주고, Http 프로토콜 표준에서 사용하는 Last-Modified태그나 E-Tag를 이용하면 캐싱 구현이 가능하다. Last-Modified응답 날짜 헤더는 언제 응답이 나타났는지 가리키는 데 반면에, Last-Modified 헤더는 지난 할당되어진 자원이 바뀔 때 가리킨다. 그래서 Last-Modified value는 Date value보다 최근일 수가 없다. Las..
기본적으로 php을 이용한 정규표현식에 대한 자동링크는 구글링을 하면 쉽게 찾아볼 수 있다. XSS 공격을 막기 위해 php에서는 htmlspeicalchars이라는 메소드를 제공하게 된다. 이것을 쓰게 되면 XSS 공격을 쉽게 막을 수 있는 이점이 있다. 하지만 이 메소드는 스크립트 태그 뿐만이 아니라 모든 태그를 막아버리기 때문에 게시판 내용에서 URL 같은 것들을 링크를 달거나 색깔을 입힐 수 없게 된다. 혹시라도 htmlspecialchars을 썼다면 구글에 존재하는 어떠한 정규표현식도 제대로 안 먹힌거나 URL이 깔끔하게 링크가 되지 않는다.(결국엔 링크나 색깔도 태그를 써야하기 떄문이다.) 그렇다면 스크립트를 제외하고 몇몇 태그를 써야 한다는 상황이 올 때가 있다. strip_tags 라는 메..
Rest의 다음 특징은 Stateless이다. Stateless는 서버에 클라이언트에 대한 상태를 저장하지 않는 것을 의미한다. 대신 클라이언트에서 서버까지 보내지는 각각의 요청은 서버가 요청을 처리할 수 있도록 하는 정보가 포함이 되어야 한다. 그래서 클라이언트 쪽에서는 서버에 관련된 모든 상태를 관리하고 저장하는 책임이 있다. 그림 출처 : https://www.slideshare.net/KishrorKumar/getting-started-with-wp-rest-api 그림을 보시다시피 각 요청에 대해서는 서로 의존적이지 않기 때문에 서버 입장에서는 많은 요청들을 처리가 가능하게 된다. 게다가 요청들이 제대로 서버에 전달되었는지에 대해서 보장받기 위한 동기화 처리를 굳이 기다릴 필요가 없게 된다. 그..
Rest API 특징들 중에서 이번에는 Uniform Interface에 대해 설명할 까 하다. 정의는 URL로 지정된 리소스에 대한 조작을 통일하고 한정된 인터페이스로 수행하는 아키텍쳐 스타일이다. 단순히 정의로만 생각을 하면 추상적으로 들려 이해가 가지 않을 수가 있으니 한 번 풀어서 설명해볼려고 한다. 여러 특징들을 나누어서 Rest API에 관한 정의를 이해할 수 있다고 생각한다. 1) URL과 한정된 인터페이스예전에는 param을 통해 해당 resource에 접속을 할 수 있었다. 예를 들면 programmer7895.tistory.com?user=admin 이라는 URI를 통해서 관리자모드로 들어갈 수 있었다. 하나의 param이라면 상관이 없지만, 상황에 따라서는 URI 주소가 길어지는 염려..
RESTful API는 웹 서비스에서 가장 인기 있는 디자인 패턴 중 하나입니다. REST는 Representational State Transfer의 약자로, 웹의 장점을 최대한 활용할 수 있는 아키텍처를 의미합니다. RESTful API는 HTTP 프로토콜을 기반으로 구축되며, 웹 서비스 간 통신을 단순하고 일관성 있게 만들어줍니다. API는 Application Programming Interface의 약자로, 다른 소프트웨어와 소통하기 위한 방법을 제공합니다. RESTful API의 특징 1. Stateless RESTful API는 상태를 유지하지 않습니다. 이는 각 요청이 서버에서 처리되는 독립적인 트랜잭션이라는 것을 의미합니다. 서버는 클라이언트의 이전 요청에 대한 정보를 기억하지 않으며, ..
로드 밸런싱은 주로 자원에 대한 최적화, 처리량 최대화, 지연율 최소화를 해준다. nginx는 여러 애플리케이션 서버에 트래픽을 분산해주고, 퍼포먼스를 향상시켜주고, 확장성, 신뢰성을 바탕으로 매우 효율적인 Http 로드밸런싱을 제공해준다. 로드밸런싱은 다음과 같은 메소드를 제공한다. 1. 라운드 로빈(round-robin) 2. 가장 접속량이 적은 서버에 할당(Least-connected) 3. 다음 요청은 전에 들어왔던 서버에 할당(ip-hash) 다음은 로드밸런싱의 기본값(default) 세팅이다. (Round-robin) http { upstream application { server www.server1.com; server www.server2.com; server www.server3.co..
리눅스에서 find 명령어가 해당하는 파일을 검색하는 명령어라는 것은 누구나 잘 알 것이다. 기본적으로 파일내용 검색하는 명령어는 다음과 같다. find [경로] -name "파일명" | xargs grep "찾을 내용" 여기서 xargs는 보통 파이프랑 같이 사용하는데, 파일 목록을 추출해서 출력, 삭제, 복사 등을 하는 경우가 있다. 명령어가 파일, 지정한 패턴에 대한 출력 명령어이다. 다시 말하면 저 명령어 의미는 해당 경로에 파일명을 찾은 다음, 파일명 안에 존재하는 내용을 출력하는 명령어라 생각하면 된다. 하나 예를 들면서 설명하겠다.호스트 이름이 'was1'이라서 다른 이름으로 바꿀려고 한다. 물론 우리는 바로 /etc/hosts 가서 변경하면 되지만, find 를 가지고 해결하려 한다.확장명..