묵성이
지금까지 올라온 글들
-
잘못된 에러 핸들링과 로그에 관하여
잘못된 에러 핸들링과 로그에 관하여
2024.04.16로그레벨에 관하여 개발을 진행하다보면 로그를 테스트나 서비스 상태나 장애 파악을 위해 많이 쓰게 됩니다. 그래서 단계에 따른 레벨을 사용하게 됩니다. log4j 기준으로 RACE, DEBUG,INFO, WARN, ERROR, FATAL 으로 구분을 지어 사용합니다. ⭐ 로그레벨 정의 TRACE : 추적 레벨은 DEBUG보다 좀 더 상세한 정보를 나타낸다. DEBUG : 프로그램을 디버깅하기 위한 정보를 지정한다 INFO : 상태변경과 같은 정보성 메세지를 나타낸다. WARN : 처리 가능한 문제, 향후 시스템 에러의 원인이 될 수 있는 경고성 메세지를 나타낸다. ERROR : 요청을 처리하는 중 문제가 발생한 경우이다. FATAL : 아주 심각한 에러가 발생한 상태로 시스템적으로 심각한 문제가 발생해 어.. -
클라우드 서버 제작 및 서버 인프라 설계
클라우드 서버 제작 및 서버 인프라 설계
2023.12.18서버구축에 있어서 올해 프로젝트를 진행하면서 팀장 역할과 Android와 BackEnd 개발을 하게 되었습니다. Spring을 공부하고 있어 서버 개발은 할 수 있었지만, 서버 인프라 설계에 대해 잘모르고 있었습니다. AWS, GCP를 이용하면 시간 절약이 가능했지만 비용문제로 Local 서버로 만들어야 하는 상황이라 학교에서 배운 네트워크 기반과 보안 지식을 꺼내야만 했습니다. 한정적인 자원을 효율적으로 로컬 컴퓨터에 서비스를 설치해서 사용할 수 있지만, 만약 서버가 문제가 생기면 모든 서비스가 문제가 문제가 생기거나, 백업이 불편하다는 점이 있었습니다. 그래서 다른 방법을 찾게 되었습니다. 특히 한정적인 로컬 자원을 잘 활용하며 백업이 유연해야 했습니다. 주변에 어떤 방법이 찾아보던중 이미 자원을 효.. -
WebRTC란?
WebRTC란?
2023.04.10WebRTC란 WebRTC(Web Real-Time Communication)는 웹과 애플리케이션에서 별다른 소프트웨어 없이 카메라, 마이크 등을 사용하여 실시간 커뮤니케이션을 제공해주는 기술이다 WebRTC의 기술 시그널링 SDP(Session Description Protocol)은 멀티미디어 커뮤니케이션 세션을 설명하기 위한 포맷이다. SDP 자체는 미디어 스트림을 전달하지 않지만, 엔드 포인트 간에 네트워크 메트릭, 미디어 유형 및 기타 관련 속성의 연결에 사용된다. 연결 STUN(Session Traversal Utilities for NAT)은 실시간 음성, 비디오, 메시징 애플리케이션 및 기타 상호작용 통신 부문에서 네트워크 주소 변환(NAT)과 통신하여 Peer의 공인IP 주소를 보내는 것.. -
Kotlin Coroutines 이란 무엇인가요?
Kotlin Coroutines 이란 무엇인가요?
2023.02.06Coroutines 이란 무엇인가? Kotlin coroutines은 비동적으로 실행되는 코드를 간소화하기 위해 Android에서 사용할 수 있는 동시 실행 설계된 패턴이다. 코루틴은 Kotlin 1.3 버전에 추가되었습니다. 코루틴의 장점 경량화 코루틴은 실행 중인 스레드를 차단하지 않은 “정지”를 지원하므로 단일 스레드에서 많은 코루틴을 실행할 수 있다.(정지 하는것은 동시 작업을 지원하므로 차단보다 메모리를 절약합니다.) 기본으로 제공되는 취소 지원 실행 중인 코루틴 계층 구조를 통해 자동으로 취소가 전달됩니다. Jetpack통합 많은 Jetpack라이브러리에 코루틴을 완전히 지원하는 확장 프로그램이 포함되어있습니다. Coroutines와 Thread Process와 Thread 프로세스(Proce.. -
객체지향 코드 설계 5가지 원칙(SOLID)
객체지향 코드 설계 5가지 원칙(SOLID)
2022.09.27코드 설계 원칙(SOLID) SOLID은 SRP(단일책임원칙), OCP(개방 폐쇄 원칙), LSP(리스코프 치환원칙), DIP(의존역전 원칙), ISP(인터페이스 분리 원칙)의 앞글자를 따서 만들어졌다. SOLID를 지키고 설계를 한다면 시간이 지나고 유지보수와 확장이 쉬운 소프트웨어로 개발할 수있고 프로그램 설계에서는 어떠한 원칙을 정하고 그것을 기반으로 프로그램을 작성한다면 원칙 없이 작성한 코드보다 좋은 결과를 볼 수 있다. 단일 책임 원칙 (Single Responsibility Principle) 객체 지향 프로그래밍에서 단일 책임 원칙(Single Responsibility Principle)은 모든 클래스는 하나의 책임만 가지며 클래스는 그 책임을 완전히 캡슐화 해야한다. 클래스가 제공하는 .. -
세계에서 가장 강력한 Apple의 M1 Ultra
세계에서 가장 강력한 Apple의 M1 Ultra
2022.03.163월 9일에 Apple Event가 있었습니다. 공개 당시 iPhone13 그린, iPhone SE, iPad Air가 새롭게 발표되었지만 그중에서 제일 눈에 띈 발표가 바로 Apple Silicon중 최고의 프로세서인 M1 Ultra 발표 였습니다. 보자마자 역시 Apple의 혁신적인 기술을 대단하다고 한번더 알게되었습니다. M1 Ultra는 M1 Max를 UltraFusion 기술로 두개 합쳐 만들어진 Apple Silicon입니다. 이 새로운 Soc칩셋은 1,140억개의 트랜지스터를 구성하고 있습니다. 지금까지 출시된 칩중에서 가장 많은 수의 트랜지스터라고하는데, M1 Pro가 337억개, Nvidia RTX3090는 283억개, AMD Ryzen 9 5950x 가 109억개 입니다. 어마어마한 트..