일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 웹앱
- reactor
- 웹 스터디
- 서버운영
- reactive
- Spring Framework
- Spring Batch
- ipTIME
- 공유기 서버
- reactor core
- spring reactive
- 웹 커리큘럼
- Today
- Total
목록Back-End/좋은글 (53)
Hello World
많이 들어봤고 실제로 업무를 하면서도 많이 사용하는데 그에 비해 이해도는 많이 떨어지는 것중 하나가 세션, 쿠키 인것같다. (적어도 나에게는..) 실제로 이번에 회사에서 발생한 이슈의 원인이 세션 데이터가 지워저서 발생한 이슈 였는데, 이 원인을 다른사람들과 얘기하다보니, 이해도가 부족하여 제대로된 원인분석이 되지 않는것 같았다.그래서 이번기회에 세션과 쿠키에 대해 정리를 한번 해보려고 한다.세션과 쿠키필요성세션과 쿠키에 대해 이야기 하기 전에 HTTP의 특성을 몇가지 살펴보자.HTTP는 요청과 응답을 주고받을때 지속적으로 연결되어 있지 않고, 요청과 응답을 주고받는 순간에만 잠깐 연결되고 끊어진다. 이로인해서 서버와 클라이언트는 현재의 Request에서만 서로를 인지할 수 있다. 이런 HTTP의 특성으..
최근 개발하고 있는 서비스는 API 서버들은 특정 기능만을 제공하고 화면에서의 기능은 대부분 React를 이용하여 Client Side에서 처리하고 있습니다. 이런 구성을 마이크로서비스 아키텍처라고 부를 수도 있을텐데 이번 글의 주제는 마이크로 서비스 아키텍처에 대한 이야기는 아니고 이런 구성시에 API 서버쪽 설정과 관련한 몇가지 삽질한 것에 대한 내용입니다. 웹이나 API 서버 개발을 계속 해오신 분들은 잘 아는 내용이겠지만 저처럼 간만에 하시는 분들을 위한 글입니다.[그림] 시스템 기본 구성위 그림의 시스템 구성에 대해서는 나중에 다른 글로 소개하도록 하겠습니다.CORS 이슈위와 같은 시스템 구성에서 첫번째 만나는 문제는 HTTP를 이용하여 API 서버로 GET, POST와 같은 요청을 보낼때 그 ..
1. OSI 7 LayerOSI(Open System Interconnection Reference Model)은 국제표준화기구 - ISO -에서 개발한 모델로 컴퓨터 네트워크 소프트웨어의 개발을 돕기 위해서 7계층으로 나누어 정의한 명세서다. 보통 OSI 7 계층이라고 부른다.컴퓨터 네트워크는 아래로는 물리/전자기 적인 알고리즘과 이들을 이용해서 통신을 하기 위한 물리적인 장비들 그리고 위로는, 컴퓨터 운영체제와 수많은 네트워크 소프트웨어들이 놓이는 전지구적 규모의 광대하고 복잡한 시스템이다. 인터넷 초창기인 ARPNET시절이라면 전체 네트워크 시스템을 이해하는 사람이 있었을 테지만, 지금은 전체 시스템을 이해하고 응용 소프트웨어를 개발할 수 있는 사람은 없다고 장담할 수 있다.이런 복잡 거대한 시스템..
개요 웹 개발시 자바스크립트로 외부 서버의 경로로 ajax요청을 날리면 에러가 나면서 요청이 실패한다. 웹 브라우저의 콘솔창에 아래와 같은 메시지를 보게 된다. 크롬No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin ‘[요청한 도메인]' is therefore not allowed access. 파이어폭스교차 원본 요청 차단: 동일 출처 정책으로 인해 [요청한 도메인]에 있는 원격 자원을 읽을 수 없습니다. 자원을 같은 도메인으로 이동시키거나 CORS를 활성화하여 해결할 수 있습니다. 외부로 요청이 안되는것은 자바스크립트 엔진 표준 스팩에 동일 출처 정책(same-origin policy)이라는 보안 규칙..
웹의 시대에서는 막대한 트래픽(요청)이 발생하면 그 만큼의 수익이 나는 것이 어느 정도 가능했으며(광고 수익, 제품 구매 등…), 흔히 말하는 Enterprise 기업들을 위한 제품 Oracle과 여러 상용 WAS를 구입하여 많은 문제(예: 세션 클러스터링 등…)를 기본적으로 해결된 전제에서 시작했습니다.하지만 모바일의 시대가 대두되면서, 사용자가 늘어난 만큼 매출이 발생되지 않는 상황이 발생했습니다. 금액적인 압박이 훨씬 크기 때문에 Oracle과 상용 제품을 쓸 수 없으니, 다양한 오픈소스를 활용하게 되었으며, Micro Service Architecture 등이 하나의 패러다임으로 많은 개발자들에게 논해지면서 더욱더 백엔드의 복잡도가 증가되는 것이 현재의 상황입니다.그림 1. 백엔드의 어려움을 표현..
HTTP Status Code는 HTTP 통신을 할때 서버에서 클라이언트한테 응답을 할때 3자리 숫자로 의미를 담아 코드로 보내주는 것입니다. 브라우저 콘솔창에 자주 보이는 3자리 숫자 에러코드 여기에도 의미가 있습니다.가장 흔히 많이 아는 코드는 404입니다. “404 페이지를 찾을 수 없습니다”, “404 Page Not Found” 기억 나시나요? 더 많은 코드를 상세하게 설명과 함께 보고 싶으시면아래 위키피디아 링크에 가셔서 보실 수 있습니다.HTTP Status Code - Wikipedia 너무 많다…크게 코드는 5가지로 나뉜다고 생각하시면 쉬워요. 100client가 넘겨준 header를 잘 받았다와 같은 처음에 요청이 잘 시작되었다. 200client가 요청한 것을 성공적으로 잘 끝냈다.2..
Apache 서버 설정에서 특정 IP를 막는 내용에 대해서 간략하게 적어보려고 합니다.쉬운 내용이니깐, 또 인터넷에 엄청 많이 나와있는 내용이니깐 간략하게만요. 일단 저는 우분투 12.04 위에서 Apache2 웹 서버를 운영하고 있는데요 (개인적 용도)...항상 tail로 error.log는 확인하고 있습니다. ---> (tail -f /var/log/apache2/error.log) 근데 가끔 보면 해외에서 제 서버에 접근해서, phpmyadmin 등을 검색하더라구요.그게 좀 빈번해서, 신경이 쓰였습니다. 그래서 아래와 같이 "deny from ip 주소" 를 통해서 막고 있었습니다. 근데 한 두군데서 이상한 경로로 접근을 시도하는게 아니여서... ㅠ 그래서 다른 방법을 통해 막고 싶었습니다. Opt..
Tomcat의 로그를 보다보니 날짜별로 로그 파일을 나누어 쌓고 있음과 동시에 catalina.out이라는 파일에도 중복하여 로그를 쌓는것을 알수 있다. 이 파일은 끝없이 커지는데 관리상 좋지 못한것은 자명한 일이다. 이 문제를 해결하기 위해 catalina.sh 파일을 수정한다. start 부분을 찾아 다음과 같이 수정하자. elif [ "$1" = "start" ] ; then shift # touch "$CATALINA_BASE"/logs/catalina.out if [ "$1" = "-security" ] ; then echo "Using Security Manager" shift "$_RUNJAVA" $JAVA_OPTS $CATALINA_OPTS \ -Djava.endorsed.dirs="$JA..
슬랙(Slack)은 팀이나 프로젝트 단위에서 널리 사용되고 있는 대표적인 협업 메시징 서비스다. 통상적인 메신저 서비스들이 갖는 기본적인 메시징 기능에 더하여 자료를 저장하고 검색하는 등 협업에 필요한 여러 기능들을 갖추고 있고, 또한 모바일과 데스크톱 환경을 아우르는 편리하고 다양한 접점을 제공하기 때문에 많은 사용자층을 확보하고 있는 인기있는 서비스이기도 하다. 게다가 슬랙은 사용자나 개발자가 직접 기능을 확장하고 용도를 변경할 수 있는 다양한 통합(integration) 방법들도 제공한다.이 글에서는 슬랙이 제공하는 다양한 확장 방법들을 간단히 소개하고 그 중 하나인 슬래시 명령(slash command)을 만들어 보려 한다. 뒤에서 다시 설명하겠지만, 슬래시 명령을 만들기 위해서는 슬래시 명령을 ..
우리는 고객이 무엇에 관심 있어 하고 무엇에 관심 없어하는지, 어떤 것을 보았을 때 클릭해 들어가고 어떤 것을 보았을 때 사이트에서 이탈하는지 궁금해 합니다. 이러한 정보를 얻기 위해 봐야 할 것은 역시 웹서버의 접속 로그입니다.처음에는 매일 생성되는 로그 파일을 일일이 파싱해서 원하는 정보를 DB에 쌓는 방법을 이용했지만, 이러한 방식은 한계가 있었습니다. 저장할 수 있는 데이터의 양에 심각한 제한이 있었고, 따라서 처음에 얻고자 했던 데이터 이상의 것을 새로 추출할 수도 없었습니다.그래서 지금은 웹서버 로그를 하둡(Hadoop) 클러스터에 쌓고 있습니다. Google Analytics 같은 외부 분석툴을 사용하기도 하지만, 아무래도 데이터를 우리 손에 직접 들고 있는 것이 더 유연한 분석을 제공할 수..