전체 글
-
XSS : Cross Site ScriptingwarGame 2024. 10. 14. 17:20
CSS에게 밀려 XSS가 된 Cross Site Scripting에 대해 알아보자. XSS는 클라이언트 사이드 취약점의 대표적인 공격이다.(클라이언트 사이트 취약점 : 웹페이지의 이용자를 대상으로 공격할 수 있는 취약점) XSS는 공격자가 웹 리소스에 악성 스크립트를 삽입해 이용자의 웹 브라우저에서 해당 스크립트를 실행할 수 있다.공격자는 해당 취약점을 통해 특정 계정의 세션정보를 탈취하고, 해당계정으로 임의의 기능을 수행할 수 있다. 해당 취약점은 SOP 보안 정책이 등장하면서 서로 다른 오리진에서는 정보를 읽는 행위가 이전에 비해 힘들어졌다. 그러나 이를 우회하는 다양한 기술이 소개되면서 XSS 공격은 지속되고 있다. 자바스크립트는 이용자와의 상호작용없이 이용자의 권한으로 정보를 조회하거나 변경할 ..
-
강화학습 (Reinforce Learning) 추천 알고리즘Aromajoin Project 2024. 10. 13. 17:31
Matrix Factorization도 추천방식의 하나지만, 강화학습방법또한 점차 강력해지는 좋은 알고리즘이다. 강화학습에서 주요 개념은 다음과 같다: • 에이전트(Agent): 추천 시스템이 사용자를 대신하여 추천을 제공하는 역할. • 상태(State): 사용자가 현재 시청하는 동영상 및 사용 중인 향기 등의 정보. • 행동(Action): 추천할 향기나 동영상을 선택하는 것. • 보상(Reward): 사용자가 추천된 향기/동영상에 대해 좋아요(positive) 또는 싫어요(negative)를 남기는 등의 피드백. 즉 간단하게 요약하면 이것저것 다해보다가 맞으면 + 틀리면 - 를 받고 점차 맞는길을 알아가는 것이다. 바로 아로마 플레이어에 적용할 방법을 알아보자. 강화학습 적용에 필요한 요소 • 상..
-
Matrix factorization : 행렬분해Aromajoin Project 2024. 10. 13. 17:17
1. Matrix Factorization 개념 Matrix factorization(행렬 분해)은 주로 추천 시스템에서 많이 사용되는 기법으로, 유저-아이템 상호작용 데이터(예: 좋아요, 평점 등)를 행렬 형태로 표현한 후, 이를 두 개의 저차원 행렬로 분해해 숨겨진 패턴을 발견하는 방법이다. 주로 협업 필터링 Collaborative Filtering 방식에 자주 사용된다. 이번 프로젝트에서 쓰일 알고리즘방식이기 때문에 Matrix factorization이 협업필터링에 어떻게 쓰이고, 프로젝트에 어떤식으로 녹여낼지 공부해본다. (협업필터링은 이전글 참고) 사용자 잠재 요인 행렬과 아이템 잠재 요인 행렬 두가지가 있다. 전자는 사용자를, 후자는 아이템을 벡터로 표현한 행렬들이다. 여기서 잠재요인이란..
-
RSA 암호화방식networkSecurity 2024. 10. 13. 15:18
RSA는 공개키 암호화 알고리즘중 하나로 1977년 개발되었다. 두개의 키를 이용하는 공개키 암호화 알고리즘은 public key와 private key 두개를 이용한다.즉 누구나 공개키를 이용해 메시지를 암호화할 수 있지만, 오직 개인키 로만 복호화할 수 있다. 그러나 이것만으론 해결할 수 없는 문제점이 발생한다. 무결성과 인증, 부인방지는 커버할 수 없다. 이해하기 쉽게 예시를 들어보면, A가 B에게 중요한 기밀메시지를 보내려고 한다.A는 B의 공개키를 사용해 메시지를 암호화하고 전송한다.C가 A와 B의 통신을 가로챈다. C는 B의 공개키를 가지고 A의 메시지를 복호화할 순 없지만 암호화된 데이터를 변경하거나 바꿀 순 있다. 즉 C는 A가 보낸 메시지를 자신의 새로운 메시지로 바꾼 후 다시 B에게 전..
-
스트리밍서버 구축Aromajoin Project 2024. 10. 4. 17:04
1. 스트리밍 서버의 기본구조 스트리밍 서비스는 사용자가 실시간으로 동영상이나 음악 같은 미디어 콘텐츠를 재생할 수 있게 해주는 시스템이다. 사용자는 파일을 다운로드할 필요 없이 바로 콘텐츠를 시청할 수 있다. 스트리밍은 ‘온디맨드(On-Demand)’ 방식으로, 사용자가 특정 시점에 원하는 콘텐츠를 실시간으로 요청하고 바로 재생하는 형태이다. • 사용자의 요청 흐름: 1. 동영상 요청: 사용자가 웹사이트 또는 애플리케이션에서 동영상 콘텐츠를 선택하면, 해당 요청이 서버로 전달된다. 2. 서버 응답: 서버는 요청을 받아 동영상 파일을 찾은 후, 이를 클라이언트(사용자)에게 스트리밍 방식으로 전달한다. 3. 실시간 전송: 사용자는 전체 파일이 다운로드되기 전에 일부 데이터를 먼저 수신받아, 곧바로 재생할..
-
동영상 추천 알고리즘Aromajoin Project 2024. 10. 4. 14:47
1. 추천 시스템 개념 이해 사용자의 취향을 분석해 개인 맞춤형 콘텐츠를 제공하는 시스템. 즉 시청시간, 좋아요, 댓글, 구독과 같은 사용자 행동 데이터를 기반으로 동작하는 알고리즘. 시청시간과 같은 implicit data, 좋아요 구독과 같은 explixit data를 분석하여 사용 빠르게 예시로 맛보기 1) 가장 대표적인 동영상 플랫폼 유튜브의 추천 알고리즘 살펴보기 유튜브의 추천시스템은 딥러닝 기반으로 영상시청 히스토리, 좋아요, 댓글, 구독 등 행동데이터를 바탕으로 추천 제공.Collaborative Filtering + Deep Learning: 유튜브는 사용자와 콘텐츠 간의 관계를 학습하기 위해 **협업 필터링(Collaborative Filtering)**과 딥러닝 모델을 결합하여 사용...
-
Aromajoin BE projectAromajoin Project 2024. 9. 29. 17:29
학교 동아리에서 2학기에 진행하게된 프로젝트.실제로 아로마조인이라는 회사에서 쓰일 동영상 스트리밍사이트를 제작하는 프로젝트이기에 들어가야할 노력이 많을것으로 생각된다. 그만큼 배울점, 남는것이 많은것도 사실. 실 사용자가 사용해야하는 제품과 직결되는 사이트기 떄문에 제품을 직접 사용해 가며 프로젝트를 진행할 예정이다. 코드나 자세한 사항들은 회사내부 사정이기에 여기엔 그냥 프로젝트를 하며 느낀점, 알게된 기술스택 공부한 내용 등을 정리하기 위한 용도.
-
백준 1436 영화감독 숌 (브루트 포스)카테고리 없음 2024. 7. 31. 22:00
이 문제를 처음봤을때 666이 들어가는 매커니즘을 찾아보려 했지만 자리수별로 커지는수가 달랐고, 자리수마다 조건을 달려니 너무많은 경우의수를 따져줘야 했다. 그럴바에 N값도 정해져있으니 브루트포스로 다 돌려보며 666이 들어가는경우만 카운트 해주고 카운트된 수로 원하는 순서의 666이 들어간 수를 찾아내는게 가장 현실적이었다. 코드는 간단하지만 in 연산자를 사용하기 위해 문자열로 바꿔주어 '666'이 들어가있는지만 확인해주면 된다.N = int(input())num = 666count = 0i = 665while count N: i += 1 if str(num) in str(i): count += 1print(i)