Basic knowledge

    애플리케이션의 종류

    애플리케이션의 종류

    반응형 웹 화면 크기에 따라 홈페이지의 크기가 변화하는 웹사이트 적응형 웹 정해진 화면 크키가 기기에 맞게 홈페이지를 따로 제작하는 웹사이트 네이티브 앱 - 앱 각 운영체제에 맞는 앱을 개발 안드로이드 - Java, Kotlin IOS - Swift, Objective-C 크로스 플랫폼 - 앱 같은 소스코드로 안드로이드, IOS 모든 환경에서 작동할 수 있는 앱 Flutter, React native 웹 앱 - 웹사이트 스마트폰의 기종이나 기기에 상관없이 모든 단말기에서 같은 콘텐츠를 볼 수 있게함 모바일 앱과 비슷한 UI/UX를 지원하는 웹사이트 하이브리드 앱 - 웹사이트 네이티브 or 크로스 플랫폼 + 웹 뷰 PWA(Progressive Web Apps) - 웹사이트 웹 앱이지만 스마트폰과 PC의 바..

    불변성(Immutable)과 빌더 패턴(Builder Pattern)에 대해

    불변성(Immutable)과 빌더 패턴(Builder Pattern)에 대해

    우리는 왜? 불변성을 지키면서 코딩을 해야할까? 내가 알고있는 불변성이라는 개념은 'final' 불변객체는 재할당은 가능하지만, 한번 할당하면 내부 데이터를 변경할 수 없는 객체 class ImmutablePerson { private final int age; private final int name; public ImmutablePerson(int age, int name) { this.age = age; this.name = name; } } private final로 변수를 선언했기 때문에 외부에서 당연히 접근 불가 final로 했기 때문에 setter도 사용 불가능 그럼 이 불변성을 지키는것의 장단점은 무엇일까? 장점 객체에 대한 신뢰도가 높아진다 => 객체가 한번 생성되어서 그게 변하지 않는다..

    개발하면서 자주 만났던 이슈 및 용어 정리

    개발하면서 자주 만났던 이슈 및 용어 정리

    개발 공부를 하면서 자주 들은 말들을 한번 쭉 정리해보고 싶은 마음이 생겨 글을 남기려고 한다. 데이터 무결성(Data Integrity) 데이터 값이 정확한 상태를 의미한다 데이터 정합성(Data Consistency) == 일관성 어떤 데이터들이 값이 서로 일치하는 상태를 의미한다. 더보기 ex) User Table, Product Table이 있다고 하자. 두 테이블에서 공통적으로 쓰이는 데이터에 대하여 서로 일치하면 -> 정합성 but, 데이터가 -1인데 이 데이터는 원래 양수여야 한다 => 무결성 멱등성(Idempotent) 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질, 연산을 여러 번 반복하여도 한 번만 수행된 것과 같은 성질 Q. 데이터를 Request 할 떄 변경되지 않은 값들도..

    Git Flow 전략에 대해

    Git Flow 전략에 대해

    # 브랜치 확인 git branch # 브랜치 전환하기 git checkout # 브랜치 작성과 체크아웃을 한번에 git checkout -b # 브랜치 삭제 git checkout -d git branch -d # 원격저장소의 브랜치 삭제하기 명령어 git push origin -d # 생성한 branch를 origin Repository에 push하기(이래야 완전한 브랜치 완성) git push --set-upstream origin # 특정 branch의 내용만 로컬로 clone 하기 git clone -b 현재 위치해있는 로컬 디렉터리에서 브랜치를 만들고 push를 하게되면 현재 값들이 branch에 저장된다Ex) master - test1.txt, develop - test2.txt가 있는데 현..

    Kurento와 Openvidu에 대해

    Kurento와 Openvidu에 대해

    여러 미디어 서버 중 Janus, Jitsi, Kurento, mediasoup, Medooze가 있었는데 kurento를 사용하기로 했다 ==> 관련 레퍼런스가 많아 사용하기 쉬울 것 같아서 미디어 서버를 왜 쓸까? 피어 투 피어로 설정하게 되면 시청자가 몰리게 될 떄 호스트의 컴퓨터가 터지지 않을까? 그래서 씀 kurento 자체를 쓰려고 하니 설정할께 너무 많고 사용하기 힘들어서 관련 프레임워크를 알아보다가 openVidu를 알게됨 OpenVidu Openvidu는 모든 하위 수준의 작업들을 래핑해서 숨기고 있다. 그래서 개발자는 WebRTC, ICE 후보, 미디어 서버와 같은 까다롭고 복잡한 구현 사항에 대해 관여하지 않아도 될 정도로 간단한 API를 제공한다. 내부적으로는 미디어 파이프라인을 생..

    WSL1을 WSL2로 업데이트 하는 방법

    WSL1을 WSL2로 업데이트 하는 방법

    wsl 1을 wsl 2로 업데이트를 하고 이미 설치가 되어 있는 ubuntu18.04를 wsl 버전 2로 업데이트를 하는 것을 목표로 한다 1. Linux용 Windows 하위 시스템 사용 PowerShell 관리자 권한으로 실행 후 해당 명령어를 이용해서 하위 시스템 관리 도구 설치 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart 2. Virtual Machine 기능 사용 PowerShell에서 Virtual Machine 플랫폼 옵션 기능 사용 설정 후 컴퓨터 재시작 dism.exe /online /enable-feature /featurename:VirtualMachinePl..