ETC 16

VirtualBox에서 macOS 설치 가이드

macOS는 Apple 실리콘에 최적화되어 있으며, macOS는 iOS와 같은 Apple 생태계의 다른 운영체제와 깊이 통합되어 있다. 이러한 이유로 다양한 플랫폼에서 설치하는 데 제약이 따른다.  VistualBox로 macOS 운영체제를 구축한 후의 이점VirtualBox로 macOS를 설치하면 다음과 같은 개발상의 이점을 누릴 수 있다:1. iOS 개발 환경 구축: macOS가 있어야만 Xcode를 사용할 수 있으며, 이를 통해 iOS, macOS, watchOS, tvOS 앱을 개발할 수있다.2. 테스트 및 디버깅: 다양한 macOS버전에서 앱을 테스트하고 디버깅할 수 있다.3. 다중 플랫폼 개발: Windows나 Linux에서 macOS 가상 머신을 통해 여러 플랫폼에서 개발 환경을 통합할 수 ..

ETC 2024.07.27

SVN(서브버전) 이란 무엇일까?

SVN(서브버전, Subversion)은 개발자들이 소스 코드를 관리하고 버전 관리를 할 수 있도록 돕는 오픈 소스 버전 관리 시스템이다.    1. SVN의 주요 기능1) 버전 관리SVN은 코드의 변경 이력을 저장하여 언제든지 이전 버전으로 되돌릴 수 있도록 한다. 이는 코드 수정 중에 발생할 수 있는 오류를 쉽게 수정할 수 있게 도와준다. 2) 동시 협업여러 개발자가 동시에 작업할 수 있도록 지원한다. SVN은 충돌을 감지하고 이를 해결하는 도구를 제공하여 협업을 효율적으로 할 수 있게 한다. 3) 브랜치와 태그브랜치를 사용하면 개발자는 독립적인 작업 공간을 만들어 실험적인 기능을 개발할 수 있다. 태그는 특정 시점의 코드를 마킹하여 릴리즈 버전 등을 관리할 때 유용하다. 4) 액세스 제어SVN은 파..

ETC 2024.07.13

[Software] Porting, Converting에 대

소프트웨어 공학에서, "포팅(Porting)"과 "컨버팅(Converting)"의 개념이 나오는데, 두 가지 개념이 비슷한 듯 하나 서로 다른 개념이다. 각각의 의미와 차이점에 대해 살펴보자. 포팅 (Porting) 포팅은 한 플랫폼에서 다른 플랫폼으로 소프트웨어를 이식하는 작업을 의미한다. 일반적으로 플랫폼은 운영 체제(OS)나 하드웨어 아키텍처를 가리킨다. 포팅은 기존에 작성된 소프트웨어를 새로운 환경에서도 동작하도록 변경하는 프로세스를 포함한다. 소스 코드를 수정하거나 기존 코드를 새로운 환경에 맞게 컴파일하거나 재작성하는 것이 일반적인 포팅 방법이다. 이렇게 함으로써, 소프트웨어는 다른 운영 체제나 하드웨어에서도 동작할 수 있게 된다. 포팅은 크로스 플랫폼 호환성을 갖춘 소프트웨어를 제공하는 데 ..

블로킹(Blocking), 논블로킹(Non-blocking)에 대해

블로킹과 논블로킹은 프로그래밍에서 자주 사용되는 두 가지 동작 모델 또는 방식을 나타낸다. 이 두 개념은 주로 입출력(IO) 작업, 네트워킹, 멀티스레딩 등과 관련이 있으며, 어떻게 코드가 실행되고 제어가 처리되는지에 영향을 미친다. 아래에서 각 개념을 상세히 살펴보자. 1. 블로킹(Blocking) 블로킹은 어떤 작업이 완료될 때까지 프로그램이 다음 작업으로 진행하지 않고 대기하는 동작 방식을 의미한다. 주로 입출력 작업에서 발생하며, 예를 들어 파일을 읽거나 네트워크에서 데이터를 받아올 때 블로킹 작업이 발생할 수 있다. 블로킹 호출을 하면 해당 호출이 완료 될 때까지 제어가 호출한 코드에 반환되지 않는다. 이는 다른 작업들도 대기 상태에 놓이게 하고, 전반적으로 프로그램의 응답성을 저하시킬 수 있다..

클린 아키텍쳐(Clean Architecture) 에 대해

클린 아키텍쳐에대해 공부하기 위해 포스팅을 찾던 중, 잘 정리된 외국 포스팅이 있어서 이를 번역하여 포스팅하고자 한다. The Clean Architecture Diagram 지난 몇 년 동안 우리는 시스템 아키텍처에 관한 다양한 아이디어를 보았다. 여기에는 다음이 포함된다. Hexagonal Architecture (a.k.a. Ports and Adapters) by Alistair Cockburn, Steve Freeman, Nat Pryce가 멋진 책 Growing Object Oriented Software에서 채택 Jeffrey Palermo의 Onion Architecture Screaming Architecture James Coplien 및 Trygve Reenskaug의 DCI. Iva..

[Visual Studio] IntelliSense(인텔리센스)에 대해

1. IntelliSense란? Intelligent(지능적) + Sense(감지) 의 합성어 메서드, 개체, 속성 등을 드롭다운 리스트 형식으로 제공하고 이것을 개발자가 선택할 수 있도록 하여, 방대한 기능을 찾기 쉽도록 해주며, 코드 입력 시간을 줄이고 철자 오류를 미연에 방지하여 생산성을 향상시킬 수 있는 기능이다. IntelliSense기능을 구현하기 위한 데이터파일이 존재하는데, 작업프로젝트 디렉토리에 있는 *.ncb파일이다. 이 파일을 지운후 Visual Studio를 재시동하면 새로 업데이트 된 새 파일이 생성하고, 이후에 모든 동작이 정상적으로 이루어진다. 그러나 이 기능은 일정시간동안은 제대로 작동하다가 프로젝트에 포함된 파일을 제거하거나 수정하거나 하는 등 여러가지 작업을 하다보면 때때..

ETC 2022.11.26

판교 데이터센터 화재사건으로 보는 서버 이중화의 중요성

1. 개요 2022년 10월 15일 오후 3시경 판교 데이터센터의 무정전 전원장치 부근에 화재가 났다. 그래서 이곳에 입주한 몇몇의 기업들의 서비스가 중단되었었다. 여기서 주목할점은, 어떤 기업은 비교적 빠르게 서비스를 복구하는데에 성공하였지만, 어떤 기업은 밤새토록 복구를 해서야 일부 서비스를 복구할 수 있었고, 완전 정상 복구까지는 수 일이 소요되었다. 업계에서 이 국내 빅테크 ‘투 톱’의 위기대응이 달랐던 점은 메인 서버의 확보와 서버 이중화 구축으로 꼽았는데, 비교적 복구에 능하였던 A기업과 복구에 많은 시간 애를 먹었던 B기업을 두고 차이점을 살펴보자. 2. 서버 이중화란? 서버 이중화 HA(High Availability)는 직역하자면 “고가용성”이다. 가용성이 높다라는 뜻은, 고장날 확률이 ..

ETC 2022.11.25

ESLint와 Prettier (2) - VSCode에 ESLint와 Prettier설치

1. 개요 지난 포스팅에서는 ESLint와 Prettier의 특성과 차이점에 대해 살펴보았다. 이번 포스팅에서는 VSCode에서 ESLint와 Prettier를 설정하는 방법을 살펴보고자 한다. 2. VSCode로 ESLint 및 Prettier 설정하기 코드 편집기에 적합한 확장/플러그인을 설치해야 한다. VSCode의 경우 ESLint및 Prettier를 설치한다. 이러한 플로그인에는 각각 수백만 건의 다운로드가 있으므로 VSCode 확장 마켓플레이스에서 쉽게 찾을 수 있다. 이들을 설치했으면 적절한 사용을 위해 각각을 구성할 준비가 된 것이다. ESLint와 Prettier 설정 앞서 언급했듯이 ESLint와 Prettier는 주의해서 설정하지 않으면 서로 충돌한다. 다행히도 이것은 널리 알려진 문..

ETC 2022.10.17

ESLint와 Prettier (1) - ESLint와 Prettier의 차이점

1. 개요 (이 포스팅은 외국 포스팅글의 내용을 발췌하여 번역 및 일부 수정한 포스팅이다.) 소프트웨어 개발/엔지니어링의 중요한 부분은 의도한 대로 작동하는 코드를 작성하는 것이다. 그리고 가능한 한 버그가 적은 코드를 작성해야 할 것이다. 그러나 실제로 작동하게 만드는 것 보다 코드를 작성하는 데 더 많은 노력을 요한다. 그 이유는 주로 세상에 존재하는 거의 모든 의미 있는 프로젝트/소프트웨어가 협업을 통해 만들어 지기 때문이다. 즉, 내가 다른 사람의 코드를 쉽게 읽을 수 있어야 하고, 다른 사람도 나의 코드를 쉽게 읽고 이해할 수 있어야 한다. 수동 방법을 포함하여 이를 달성하는 많은 방법이 있다. 엔지니어 팀은 코드 검토 중에 코드 스타일 문제를 수동으로 확인할 수 있으며 팀의 모든 엔지니어가 준..

ETC 2022.10.17

Ubuntu 18.04 관리자 권한으로 폴더 프로그램 사용

간혹 root폴더에 진입하는 등 root권한으로 파일 프로그램을 사용해야 할 때가 있다. 터미널을 열고, 아래 명령어로 nautilus-admin 패키지를 설치한다. (nautilus는 우분투의 파일 관리자 프로그램으로, 이 프로그램의 관리자 권한 실행 패키지이다.) $sudo apt install nautilus-admin -y 설치가 끝났다면, 아래 명령어로 nautilus를 재시작 해주면 적용 된다. (기존에 탐색하던 창들이 닫히니 주의하자) $nautilus -q 이제 폴더를 우클릭 해보면 "Open as Administrator" 메뉴가 보이고, 클릭 시 root 권한으로 폴더를 열어 작업할 수 있다. 루트 권한의 폴더인 /root 디렉토리로 진입한 모습이다.

ETC 2022.09.29
반응형