대학와서 처음으로 맞이하는 여름방학인데
학교 나가지도 못해서 아는 사람도 별로 없고, 집에만 있자니 심심해서
평소에 주워들었던 내용들 종합해서 잡동사니 만들고 있서요
크롤러는 작성을 마쳐서 데이터 수집~가공 & 이미지 업로드 부분까지만 시험으로 돌려보고 있고
지금은 장고로 데이터 뿌려주는 부분 만들어나가고 있서요
한 가지 고민중인 사항이 있는데...
요청이 들어올 때 마다 게임 정보 DB에서 내용을 가져온 다음 내용 채워서 뿌려줄지
아니면 크롤러 단에서 가공 및 업로드가 완전히 끝난 다음 정적 html 파일을 생성해두고 그걸 뿌려줄지 고민중이에요.
내용 갱신 간격이 가장 빠를때는 5분 정도이고, 사진에서는 HTML 캐싱(?)으로 써놨듯이 정적 내용물을 생성하고 파일이나 DB에 담아두는 방향으로 가닥이 잡히고 있기는 한데... 조금 더 돌려보고 결정해야할 것 같아요
HAProxy는 작년에 생기부용으로 잠깐 진행했던 프로젝트 진행 중에 잠깐 맛본 이후로 오랜만에 다시 써보는건데,
초보자인 제 입장에서는 되게 유연하고 원하는 설정을 해줄 수 있는 것 같아 보여서 맘에 드는 한편 복잡하게 느껴지기도 하네요
쓰다가 알았는데 stick storage라고 써놨네요... 암튼, 어떤 분이 stick table 이용해서 단일 IP로부터의 DoS 공격에 대한 차단 방법에 대해 서술해놓으신 글이 있길래 참고해서 적용해봤어요
그냥 제가 했던 내용 돌아보고 기록하는 겸 글 써봤는데
"이거는 이렇게 하면 안된다" 라던가, "여기서는 이렇게 하면 더 좋다", 아니면 "이렇게 하면 보안 취약점이 생길 수도 있다" 같이
초보자인 저는 알지 못했지만 고수님들 입장에서는 뻔하게 보이는 내용들 혹시 지적해주실 수 있을까요? 내용이 너무 추상적일까요...
관심은 이런 쪽에도 많이 있는데, 아쉽게도 학과 커리큘럼하고는 방향이 많이 다르기도 하고, 컴공을 갔더라도 지금 시기에 이런 내용을 가르쳐주지는 않을 것 같아서... 고수님들 많으실 것 같은 여기에 글 남겨봐요
여기까지 읽어주셔서 감사드리고, 안읽으셨어도 관심 가져주셔서 감사해요
해당 댓글은 삭제되었습니다.
고등학교 때 역프록시로 사용할 친구들 알아보다가 nginx는 로드밸런싱 시 헬스체크 기능이 유료 라이센스를 구매해야 가능하다는 말을 들었었어서 HAProxy를 선택했었슴다. 솔직히 규모가 작아서 로드밸런서가 돌아갈 필요성은 느끼지 못하기 때문에 당장은 고려할 사항이 아니긴 한데... HAProxy말고 nginx를 사용하면 어느 면에서 이점을 얻을수 있나요?
헉, 그럼 제가 다른 내용하고 헷갈렸었나봐요... 엔진엑스를 사용해보는 것도 공부에 큰 도움이 될 것 같아요! 감사함니다
외부 저장소로 리다이렉트 하는건 이미지의 경우 밖에 없기는 한데.. 다시 역으로 리다이렉트를 보낼 수도 있다는 생각은 못해봤네요. 그냥 제 서버에 이미지 보관하고 뿌리는 게 가장 좋을 것 같긴 한데, 트래픽이 걱정되서...
트래픽 줄이려고 그냥 리다이렉트로 해놨는데, 고려해볼 사항이 꽤 많네요... 확실히 경험이 많으신분한테 조언 들을 수 있으면 듣는게 엄청 도움이 되는 것 같아요
사용자가 이미지 업로드 할 수 있는 기능은 없어서 이미지 인젝션은 아예 생각도 안해봤는데.. DB가 뚫려서 맵핑이 악의적인 파일로 향하게 되는 경우에 해당할까요?
이 댓글은 게시물 작성자가 삭제하였습니다.
물론 DB가 뚫렸으면 저것만 고려할 상황이 아닌 것 같긴 한데...
감사함니다! 방어해야할 점도 마니 배워가네요
아 글고 주소는 제가 쫄보라 못알려드리겠서요... 겁이 많아요
해당 댓글은 삭제되었습니다.
태그를 넣으려고 생각했었는데, DB 내용이 조작되서 악의적인 스크립트가 첨부될 가능성이 있기 때문인가요?
escape 해놓은 내용물을 디비에 넣어두고 요청 오면 뿌려주거나, 정적 파일 만들어두고 그걸 뿌려줄까 생각을 하고있었어요
장고에서 매번 요청마다 마크업을 생성하면 다수의 요청이 들어올 때(게임의 새 정보가 갱신됬을 때 라던지) 부하가 있을까봐 정적인 내용을 캐시해두고 뿌려둘까 고민했던건데, 역시 그 방식이 나을까요?
제가 생각해뒀던 이미지 URL 맵핑이란게.. 예를들어서 제 서버의 '/images/아이템명.png' 이런 요청이 들어온다면 DB에 저장된 외부 서비스의 링크(
http://imgsvc.com/randomid.png
같은 외부의 링크)로 가도록 302를 보내는건데, 매 이미지 요청마다 MySQL로 쿼리를 날리면 그게 좀 부담이 될까 싶어서요...
으엑.. 템플릿이라고 해야하나요? 요청이 들어올 때 마다 DB에서 내용을 가져와서 템플릿에 포맷한 뒤 그걸 뿌려주면 꽤 부하가 걸리지 않을까 싶어서요
아 네! 템플릿
네 마자요! 근데 그 맵핑 정보를 DB에서 가져오는걸로 생각을 해놨는데, 한 페이지당 게임 이미지가 많으면 6장까지도 들어가는데 매 번 그걸 MySQL쿼리로 날리면 DB에 부담이 갈까봐 메모리DB에 저장해둘지 고민중이였어요
네.. 바뀌어서 문제
키값 형태의 NoSQL DB들만 들여다봤었는데, 몽고DB도 한번 공부해보는게 좋을 것 같네요. 감사합니다!
헉, 그만큼 매력적인 요소들이 많나보네요.. 열심히 공부해보겠슴다