분류 전체보기 (63) 썸네일형 리스트형 [GIT] 깃 특정파일을 지워야할때 필요한 작업들 깃은 굉장히 쓰기 쉬운 형상관리 툴이다. 내 파일 전체의 상태를 매번 기억해 놓는 것이 아니라 커밋별로 변경내역을 저장해 놓기 때문에 가볍고 편하다.근데 이런 특성 때문에 올라가면 안되는 파일이 이미 커밋됐고 그걸 모른채로 개발을 하게되면 나중에 여러 문제가 생긴다.크게 두가지로 나눌 수 있다필요없는 파일이 올라간 경우올라가면 안되는 파일이 올라간 경우필요없는 파일이 올라가는 경우필요 없는 파일이 올라가는 경우는 비교적 대처하기 쉽다. 누가 파일을 지운 커밋을 올린뒤 머지 하기만 하면 된다. 예를 들어 이런 상황이있다.쓸데없는 파일 a가 시작지점에 모든 원격저장소 사용자들한테 뿌려졌어 내가 그걸 눈치채고 내 컴퓨터에서 내 브랜치에서 파일을 지우고 올려. 그런데 다른사람들은 그걸 눈치 못채서 다른 브랜치.. [미디어 서버] ffmpeg 미디어 서버 프로젝트 4월부터 현재까지 RTMP 프로토콜과 DIY 미디어 서버를 활용한 스트리밍 사이트 프로젝트를 만들고 있는데 워낙 배우는 것들이 많아서 정리를 해야할 것 같았다.왜 미디어 서버였나일단 내가 다른 프로젝트에서 WebRTC 기술인 OpenVidu를 사용해 본 적이 있어 관련된 공부를 해놨고 스트리밍도 비슷한점이 있을 것이라 판단해 어려우면서도 많이 배울 수 있는 프로젝트겠다! 라는 결론이 들어 제작을 시작했다처음 계획1. kurento를 이용한 제작일단 스트리밍 서비스 만들려고 인터넷에 구조나 실현방법을 검색해보면 미디어 서버가 많이 나온다. 스트리밍을 위해선 스트리머가 보내는 데이터를 인코딩등의 처리를 하는과정이 필요하고 이때문에 미디어 서버가 필요하기 때문이다. 그래서 이전에 kurento를 래핑한 Op.. [C++] 포인터와 스마트 포인터 지난번 참조와 포인터에서 이어진다. 최근 백준 문제를 풀면서 메모리 문제가 있었다. 한 객체를 두 개의 포인터로 지정해놓았는데. 다른 한 포인터로 delete를 해버리니 다른 포인터에 접근을 하는 것 자체만으로도 에러가 발생했다. 나중에 알고보니 이게 C++에서 흔히 일어나는 댕글링 포인터 문제라는걸 알았다. Dangling pointer는 메모리가 해제된 뒤에 그 메모리를 가리키는 포인터를 의미한다고한다. 지난번에 말한 것 처럼 C++은 다른 언어들에 비해 메모리를 수동으로 등록하고 해제하는게 가능한데 그러다보니 해제된 메모리에 접근하는 일들이 생기고 그것때문에 접근 위반 오류(segmentation fault)가 나는 것이다.수동 메모리 관리는 빠르지만 이런 문제들이 많다 이외에도 메모리 누수같은 .. [백준 27652번 문제] AB 문제설명집합 두개가 있고 3가지 커맨드가 있음add,delete,find,add, delete는 더하고 지우기 가 끝find는 문자열을 둘로 나눠서 앞의 부분은 A 뒷부분은 B에서 찾을 수 있는 경우의 수의 총합을 찾아서 출력하는 함수다.입력첫째 줄에 쿼리의 개수 Qn줄동안add A aba delete A a find abab출력find 구문마다 나올 수 있는 경우의 수의 총합을 출력과정처음에는 이렇게 생각했다 일단 find쿼리에서 일어나는 일은 O(문자열길이) 안에 끝내야한다고 생각한다. 애초에 집합으로 저장해야한다고 하기도 했고 해시가 바로떠오른다. 저장되는 쿼리 양도 해봤자 1000이다.유일하게 걱정되는건 subStr이 O(글자수)라고 알고있는데 1000 글자라면어찌됐던 1000 * 1000 번 연.. [Leetcode 2370번 문제] 2370. Longest Ideal Subsequence 문제 설명Ideal Subsequence란 Subsequence의 인접한 두 칸의 요소들의 인덱스 차이가 k 이내일 때를 의미한다. 어떤 문자열이 주어졌을때 그 문자열의 longest ideal string을 찾아야한다. 입력행렬의 길이 최대 10만, 칸 차이 최대 25각 행렬의 요소는 a ~ z출력Integer , 가장 긴 Subsequence의 길이과정이상적인이란말을 보면 가장긴 증가하는 부분수열이 생각난다. 다만 거긴 방향인데 여긴 아니란거 그래서 이 점이 다르다증가하는 부분수열에선 각 인덱스들이 왼쪽은 자기보다 작고 오른쪽은 자기보다 크거나 같은 자리를 찾아서 공통으로 사용함으로써 n^2 을 피할 수 있었는데 여기서는 그게 안된다.그러면 그냥 n ^ 2을 해야하는데 그것도 잘 안된다. 일단 길이가.. [Leetcode 881번 문제] 881. Boats to Save People 문제 설명사람 배열이라는게 존재함. 모든 사람들을 보트에 태워야한다. 보트에는 최대 2명이 탈 수 있고 그 두명의 무게의 합은 최대 중량 limit을 초과할 수 없다. 보트가 무한할때 이 인원들을 태울 수 있는 보트의 최소 숫자를 구해라.입력1이상 5만 이하의 사람배열각 사람의 무게는 limit과 3만보다 작고 1보다 큰 정수이다출력정수, 보트의 최소 개수과정보트를 태운다.배열이 나에게 아주 호의적인 상황이라면 (모든 탑승자의 크기가 limit / 2) 답은 뭐 나누기 2의 몫과 같음. 이 문제는 그렇지않음 보트의 수는 무한하다는것도 특징이다.그럼 이상적인상황을 만드는 방법을 구해야했다. 각 보트에 탈 수 있는 인원은 2명이 최대니까정렬해놓고 투포인터로 최소 무게 인원과 최대 무게 인원을 더해보는 방식을.. [C++] 포인터, 참조 포인터는 C하면 가장 큰 특징으로 생각되는 용어다. 그만큼 질문도 많고 내용도 많다. 그러다보니 겉핥기만 허게되기 십상이다.우선 내가 여태까지 생각하던 포인터는 무엇인지 생각해 봤다.포인터는 데이터가 저장된 메모리를 가리키는 데이터인가포인터는 어떤 의미에선 참조와 비슷한 역할을 한다. 참조 역시 데이터가 저장된 메모리의 정보를 가지고 있다. 이렇게 되면 참조는 포인터와 대조군이다 그럼 참조랑 포인터는 정확히 뭐가 다를까.일단 내가 아는바에 따르면 참조는 선언과 초기화가 동시에 일어나며 한번 초기화하면 다시 초기화 할 수 없다.반면 포인터는 한번 변수를 초기화하고 다시 초기화 할 수 있으며 null값을 가질 수도 있다. G쌤한테 이걸 물어도 크게 틀렸다고 말하진 않았다. 그래도 궁금한건 왜 그런가였다. 아.. [미디어 서버] 대환장 미디어 서버 제작 프로젝트로 실시간 미디어 스트리밍 서비스를 만들고자 했다. 일단 처음엔 기세좋게 kurento서버를 미디어서버로 두고 통신을 하려했으나 문제가 한 두개가 아니었다. 일단 납기 문제가 제일 중요하기 때문에 빠르게 기존의 방식을 버리고 갈아타기로했다. 다른 방식이 예제가 많은 nginx방식인데 많이들 한다는 점에서 쉬운점이 있겠으나 한 번도 안써봤으니 예상못한 문제로 터져버릴 수도 있을 것 같았다. 그런 점에서 이번엔 하나하나 문제점을 써가면서 풀어가기로했음 일단 시나리오는 스트리머가 서버에 방을 만들겠다고 요청을 보냄서버가 채널을 열어줌스트리머가 자신의 미디어 내용을 보냄이렇게 하려했고 빠르게 G쌤과 대화했다나는 nginx로 실시간 미디어 서버를 하기로 결정했어내 지금 시나리오상으론 두개가 필요해 [스트리.. 이전 1 ··· 4 5 6 7 8 다음