GC vs ARC
·
프로그래밍언어/swift
👋 들어가기 전Swift를 주 언어로 사용하면서 ARC에 대한 내용은 많이 살펴봤지만 군대에서배운 나의 첫 언어 JAVA의 메모리 관리 도구인 GC(Garbage collector)에 대해서는 따로 깊게 알아보지 않았다.  이해하기 쉽게 ARC와 비교하며 이번 기회에 두개의 개념을 다시 정리해보자.🗑️ ARC 먼저 익숙한 ARC 부터 살펴보자. Automatic Reference Counting의 약자로  말그대로 자동적으로 참조 카운팅을 기반으로 메모리를관리하는 기술이다.🎉 등장 배경Objective-C에서는 MRC(Manual Reference Counting)를 사용했다. 즉, 할당과 해제를 개발자가 직접해줬다. 하지만 휴먼에러가 발갱하는 위험이 있기 때문에 이 역할을 자동으로 하는 기술이 바..
분할 정복 vs 동적 계획법
·
PS/알고리즘
👋 들어가기 전 알고리즘 관련 글을 쓰는건 진짜 오랜만인 것 같다.. 아마 마지막이 퀵 정렬과 관련된 포스팅인 것 같은데 https://hamp.tistory.com/95 .. 2달이 되어간다. 이번 시간에는 자주 헷갈리는 개념인 분할 정복과 동적 계회법의 차이점을 알아보자.🚧 공통점과 차이점공통점두 접근법 모두 문제를 작게 쪼개는 작은 단위에서 해결하려는 접근법이다.차이점동적 계획법은 부분 문제를 풀기 때문에 문제가 중복될 수 있다. 그렇기 때문에 메모제이션 기법을 사용한다. 반대로 분할 정복은 중복되는 문제가 없어 메모제이션 기법을 사용하지 않는다.📄 동적계획법문제를 잘개 쪼개 입력이 작을 때 문제를 먼저 해결한 후, 다음 연산에 사용하는 기법더 큰 연산에 이전 문제들을 사용하기 위해서는 이전 ..
이미지 포맷 분석하기
·
CS/이미지
👋 들어가기 전 부스트 캠프가 끝나고 1주일 동안 생각보다 큰 무기력함이 많이와서 3,4일 동안은 정말 좀비처럼 지냈다.. 이제는 슬슬 루틴을 생각 찾아야 된다고 생각해서 CS 공부쪽 주제로 가볍게 시작하려고한다. 여러 채용공고를 살펴보며 좋은 CS 주제를 살펴보고 있는데 이미지쪽 얘기가 많이보여이번 시간은 이미지에 대한 공부를 해보려한다.  이미지는 앱을 만들 때 그냥 디자이너가 준 것을 쓰기만 했지 각 포맷의 차이점, 등장한 이유를깊게 살펴보지 않은 것 같다. 이번 시간에는 png, jpeg의 특징과 등장한 이유를 살펴보자.📷 이미지 종류파일 포맷에 들어가기 전 먼저 이미지의 종류부터 알아보자. 이번에 공부하면서 알게된건데 이미지에도 종류가 있더라.. ❓❓❓ 얼마나 그냥 썼는지 진짜 반성하게 된다..
[ 부스트 캠프 ] Shook 서비스 플레이어 만들기
·
CS/LiveStreaming
👋 들어가기 전'드디어 이번 프로젝트에서 가장 심혈을 기울인 부분을 포스팅할 때가 됐다.우리 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와 실시간으로 채팅할 서버가 없다는 것을 확인했다. 현실적인 한계를 깨닫고 라이브 스트리밍 서비스에서 채팅 기능을..