분할 정복 vs 동적 계획법
·
PS/알고리즘
👋 들어가기 전 알고리즘 관련 글을 쓰는건 진짜 오랜만인 것 같다.. 아마 마지막이 퀵 정렬과 관련된 포스팅인 것 같은데 https://hamp.tistory.com/95 .. 2달이 되어간다. 이번 시간에는 자주 헷갈리는 개념인 분할 정복과 동적 계회법의 차이점을 알아보자.🚧 공통점과 차이점공통점두 접근법 모두 문제를 작게 쪼개는 작은 단위에서 해결하려는 접근법이다.차이점동적 계획법은 부분 문제를 풀기 때문에 문제가 중복될 수 있다. 그렇기 때문에 메모제이션 기법을 사용한다. 반대로 분할 정복은 중복되는 문제가 없어 메모제이션 기법을 사용하지 않는다.📄 동적계획법문제를 잘개 쪼개 입력이 작을 때 문제를 먼저 해결한 후, 다음 연산에 사용하는 기법더 큰 연산에 이전 문제들을 사용하기 위해서는 이전 ..
이미지 포맷 분석하기
·
CS/이미지
👋 들어가기 전 부스트 캠프가 끝나고 1주일 동안 생각보다 큰 무기력함이 많이와서 3,4일 동안은 정말 좀비처럼 지냈다.. 이제는 슬슬 루틴을 생각 찾아야 된다고 생각해서 CS 공부쪽 주제로 가볍게 시작하려고한다. 여러 채용공고를 살펴보며 좋은 CS 주제를 살펴보고 있는데 이미지쪽 얘기가 많이보여이번 시간은 이미지에 대한 공부를 해보려한다.  이미지는 앱을 만들 때 그냥 디자이너가 준 것을 쓰기만 했지 각 포맷의 차이점, 등장한 이유를깊게 살펴보지 않은 것 같다. 이번 시간에는 png, jpeg의 특징과 등장한 이유를 살펴보자.📷 이미지 종류파일 포맷에 들어가기 전 먼저 이미지의 종류부터 알아보자. 이번에 공부하면서 알게된건데 이미지에도 종류가 있더라.. ❓❓❓ 얼마나 그냥 썼는지 진짜 반성하게 된다..
[ 부스트 캠프 ] Shook 서비스 플레이어 만들기
·
iOS/Framework
👋 들어가기 전'드디어 이번 프로젝트에서 가장 심혈을 기울인 부분을 포스팅할 때가 됐다.우리 Shook팀은 모바일 게임 스트리밍 서비스로 크게 방송 송출 / 방송 시청 파트로 나뉜다. 평소에 스트리밍 방송을 자주 신청하는 나로써.. 어느 하나 포기하고 싶지 않지만 현실적으로3주 안에 해당 기능 개발에 모두 참가할 수는 없을 것 같아서 방송 시청쪽에서 사용자와 가장 밀접한플레이어를 선택했다. ⚙️ 빠르게 플레이어 만들기 먼저 재생할 resource가 있다고 가정하고 바로 재생할 수 있게 먼저 세팅을 해보자. 애플에서는 비디오를 재생할 수 있게 크게 2가지 방법을 제공해주는데  첫번 째는 AVKit, 두번째는 AVPlayerLayer와 함께 AVPlayer를 사용하는 방법이다. 간단히 정리하면 AVKit은..
[ 부스트 캠프 ] 채팅 기능을 위한 웹소켓 만들기
·
iOS
👋 들어가기 전 [ 부스트 캠프 ] iOS 개발자의 스프링 배포를 위한 여정👋 들어가기 전우리 서비스 핵심 기능인 스트리밍 화면을 살펴보자. 1. 영상 송출2. 방송 정보 제공3. 실시간 채팅기능 우리는 스트리밍관련 해서 naver cloud platform의 live station을 제공 받는다. NAhamp.tistory.com 위 글에서 나는 채팅을 위한 스프링 서버를 만들었다.이번에는 Client에서 사용할 웹 소켓을 만들어보자.  이번 프로젝트에서 생각보다 재밌게 진행한 작업이다. 왜냐하면 보통 채팅기능을 위한 웹소캣 통신은 보통 서버와 클라이언트 모두 오픈소스를 활용해서 구현했었는데 부스트 캠프에서는 서드파티를 지양하고 있기 때문에시간이 걸리더라도 직접 구현하는 것이 부스트 캠프의 도전 정..
[ 부스트 캠프 ] iOS 개발자의 스프링 배포를 위한 여정
·
스프링
👋 들어가기 전우리 서비스 핵심 기능인 스트리밍 화면을 살펴보자. 1. 영상 송출2. 방송 정보 제공3. 실시간 채팅기능 우리는 스트리밍관련 해서 naver cloud platform의 live station을 제공 받는다. NAVER CLOUD PLATFORMcloud computing services for corporations, IaaS, PaaS, SaaS, with Global region and Security Technology Certificationwww.ncloud.com 여기서 1번은 라이브 스테이션에서 제공을 받으면 되지만방송 정보 (제목, 부가 설명) 제공하는 api와 실시간으로 채팅할 서버가 없다는 것을 확인했다. 현실적인 한계를 깨닫고 라이브 스트리밍 서비스에서 채팅 기능을..
[ 부스트 캠프 ] CI를 통한 범인 찾기
·
깃/action
👋 CI를 도입한 이유Tuist를 도입하여 우리는 각자 독립된 환경에서 필요한 부분만 빌드하는 이점을 살려개발의 생산성을 높혀 나가고 있었다. 그런데 여기서 예상치 못한 변수가 등장했다.. 바로 빌드되는 부분을 제외한 곳의 디버깅이 안되는 상황이다.현재 BaseFeature의 타겟을 빌드하게 되면 다른 타겟쪽은 빌드가 돌아가지 않기 때문에 컴파일 에러를 잡아낼 수 없다.그렇게되면 우리의 규칙인 pr단위는 반드시 빌드가 되야한다라는 규칙이 깨지게된다.  실제로 ci 도입 전 많은 pr은 굉장히 안전하지 않아고 실제로 pull을 받았을 때 빌드가 안되는 문제가 많았다. 이제부터 ci를 통해 범인 찾기와 범인 발생 자체를 최대한 막아보려고 한다. ⏰ 언제 검사할까?? 가장 먼저 고민해야할 부분은 action..