반응형

개발/개발 공통 21

g

[파일 형식] JSON 파일의 형식과 문법에 대해서

어디선가 자연스럽게 많이 보았던 JSON 파일에 대해서 알아본다. 실제로 프로그램에서 활용하는 읽어보는 것까지 알아보도록 한다. JSON 파일의 형식과 문법에 대해서 JSON이 뭐지? JavaScript Object Notation (JSON)은 Javascript 객체 문법으로 구조화된 데이터를 표현하기 위한 문자 기반의 표준 포맷이다. 웹 애플리케이션에서 데이터를 전송할 때 일반적으로 사용한다. JSON이 Javascript 객체 문법과 매우 유사하지만 딱히 Javascript가 아니더라도 JSON을 읽고 쓸 수 있는 기능이 다수의 프로그래밍 환경에서 제공된다. 확장자는. json으로 생성한다. VS Code에서 JSON 확장 설치 가장 먼저 json 이라는 VS Code 확장을 설치했다. 제대로 활..

g

[파일 형식] YAML 파일의 형식과 문법에 대해서

프로그래밍을 하다 보면 실제 언어로 구현된 파일뿐만 아니라 어떤 데이터나 환경 설정 등이 필요한 경우들이 있다. 그럴 때 필요한 것이 특정한 파일 형식이다. 내가 정한 문법대로 내 프로그램에서만 사용해도 상관없지만 다른 프로그램들과의 호환성을 위해서는 많이 사용되는 형식을 따르면 훨씬 더 활용도가 높아질 것이다. 대표적인 파일 형식들에 대해서 알아보고 어떻게 사용하는지 알아보도록 하겠다. 첫 번째로 YAML 파일 형식과 문법에 대해서 알아보겠다. YAML이란? yml 이나 yaml과 같은 확장자를 가진 파일이다. 출력 가능한 유니코드 문자 집합(UTF-8, UTF-16 등)을 이용한다. 다른 시스템과 상호작용할 수 있는 데이터를 표현하는 다른 형식인 XML이나 JSON보다는 읽기 쉽게 표현할 수 있다. ..

g

[도서 리뷰] 임베디드 C를 위한 TDD

TDD를 실제로 해보면 매우 유용하고 새로운 느낌을 얻을 수 있다. 하지만 임베디드 C와 같은 특수한 소프트웨어나 펌웨어에서는 적용하기 다소 어렵다. 그래서 이 책은 그런 부분들을 어느 정도 가이드해 준다. http://www.yes24.com/Product/Goods/8117533 임베디드 C를 위한 TDD - YES24 애자일 전문가인 제임스 그레닝은 임베디드 소프트웨어 개발에 테스트 주도 개발을 적용해야 하는 이유와 적용하기 위한 방법을 간결하게 보여준다. TDD를 소개하는 다른 책들과 달리 특별히 펌 www.yes24.com 테스트 주도 개발 왜 TDD가 필요한가? 사람은 실수를 하기 때문이다. 프로그래밍은 매우 복잡한 활동이며 우리가 의도한 대로 계속 잘 동작하도록 지켜줄 자동화된 테스트 케이스..

g

[도서 리뷰] 개발자로 살아남기 : 30년을 주도하는 9가지 필수 기술

책과 Fastcampus 강의를 통해 많이 알려진 개발자로 살아남기 책을 리뷰해 본다. http://www.yes24.com/Product/Goods/105645204?pid=123487&cosemkid=go16402400667470200&gclid=Cj0KCQiA8aOeBhCWARIsANRFrQH_CiXjn0mxEX3WxP9OrYDJQcTucdgUcFMaeMo2EhQcs-SeKRqSuigaAofaEALw_wcB 개발자로 살아남기 - YES24 평생 개발자를 꿈꾼다면 30년 커리어패스를 설계하자실리콘밸리와 우리나라에서 30년간 TOP 개발자로 활약한 저자의 커리어패스 인사이트를 공개한다. 저자가 제안하는 ‘성장하는 30년 커리어 www.yes24.com 9가지 기술 엔지니어링 역량 개발 지식, 제품 이해..

g

[Linux] shell 자주 쓰는 명령어를 정리해 보자

Linux에서 shell은 명령할 수 있는 인터페이스이다 시스템에서 원하는 동작을 수행하기 위한 사용자 인터페이스는 크게 2가지로 나눌 수 있다. 우리에게 익숙하고 사용자 친화적인 GUI 방식 와 전통적인 심플한 방식의 CLI가 있다. GUI (Graphic User Interface) 우리가 눈으로 보면서 실제로 입력하고 클릭하고 하는 동작들을 수행하는 인터페이스이다. CLI (Command Line Interface) 터미널로 정해진 명령어를 사용자 입력을 통해 받는 인터페이스이며, Linux에서 사용하는 shell 이 여기에 해당된다. CLI 방식은 자주 사용하다 보면 익숙해지지만 처음 사용하거나 익숙해지지 않으면 불편하다. 특히 윈도우 방식과 IDE 위주로 개발했던 개발자라면 리눅스 환경과 CLI..

g

[객체 지향] SOLID 원칙에 대해서 알아보자

객체 지향을 공부하면서 SOLID 원칙을 빼놓을 수 없다. SOLID 원칙에 대해서 공부해 본다. SOLID란 로버트 마틴이 2000년대 초반에 명명한 객체지향 프로그래밍 및 설계의 다섯 가지 기본 원칙을 마이클 페더스가 소개한 것이다. 프로그래머가 시간이 지나도 유지 보수와 확장이 쉬운 시스템을 만들고자 할 때 이 원칙들을 함께 적용할 수 있다. SOLID 원칙들은 소프트웨어 작업에서 프로그래머가 코드가 읽기 쉽고 확장하기 쉽게 될 때까지 소프트웨어 소스 코드를 리팩터링 하여 코드 냄새를 제거하기 위해 적용할 수 있는 지침이다. 1. 단일 책임 원칙(SRP) 모든 클래스는 하나의 책임만 가지며, 클래스는 그 책임을 완전히 캡슐화해야 함을 일컫는다. 클래스가 제공하는 모든 기능은 이 책임과 주의 깊게 부..

g

[객체 지향] 객체 지향 프로그래밍(OOP)에 대해 알아보자

객체 지향(Object oriented) 이란? 우리가 실생활에서 쓰는 모든 것을 객체라 하며, 객체 지향 프로그래밍은 프로그램 구현에 필요한 객체를 파악하고 각각의 객체들의 역할이 무엇인지를 정의하여 객체들 간의 상호작용을 통해 프로그램을 만드는 것을 말한다. 객체는 클래스라는 틀에서 생겨난 실체이다. 따라서 객체 지향 프로그램은 객체와 객체 간의 연결로 되어 있으며 각각의 객체 안에 자료구조와 알고리즘이 들어있는 것이다. 쉽게 말해서 프로그래밍을 할 때, 이 프로그램 내의 구성요소들을 각각 쪼개고 그 요소들끼리 서로 통신하는 개념으로 프로그래밍을 한다고 생각하면 된다. 이것이 절차 지향과의 큰 차이다. 결국 절차지향은 말 그대로, 어떤 순서로 프로그램이 돌아가느냐 의 관점에서 코드를 작성하는 것이고 ..

g

[도서 리뷰] 소프트웨어 장인 책을 읽은 후기

http://www.yes24.com/Product/Goods/20461940 소프트웨어 장인 - YES24 더 나은 개발자가 되어, 더 좋은 코드를 전달하고 싶은 당신을 위하여...이 책에서 풀어낸 소프트웨어 장인정신의 프로페셔널리즘, 기술적 탁월함, 고객 만족은 애자일, 린(lean) 원칙들과 시너지 www.yes24.com 총평 소프트웨어 엔지니어링 관련 업무를 하며 처음으로 접한 책이다. 많은 추천과 후기가 있는 걸 보면 분명히 얻을 수 있을게 많다고 생각해서 정말 진지하게 꼼꼼하게 읽었다. 많은 사람들이 읽었다고 해서 다 맞거나 모두 공감할만한 내용은 아닐 수 있지만 적어도 소프트웨어를 진지하게 바라보기 시작하는 내 입장에서는 많은 내용이 공감되고 와닿았다. 개발을 하다 보면 실제 개발보다는 이..

g

[개발 상식] 프로그래밍 패러다임을 알아보자

프로그래밍 패러다임의 개념과 패러다임 3가지 종류에 대해서 알아보도록 하겠다. 프로그래밍 패러다임 프로그래밍 패러다임은 어떠한 방식으로 프로그래밍을 할지, 프로그래밍 혹은 코드를 바라보는 관점에 대한 고민에서 나온 전략이라고 볼 수 있다. 사람이 프로그래밍을 하고 컴퓨터가 프로그래밍된 대로 돌아가는데, 결국 똑같은 기능을 하더라도 어떻게 프로그래밍을 하느냐에 따라 코드가 천차만별이 될 수 있다. 따라서 프로그래밍이 지향하는 혹은 지양하는 방법들과 프로그래밍할 언어가 어떠한 고민과 철학을 갖고 만들어졌는지에 대한 생각이라고 이해할 수 있다. 대표적으로 절차적, 객체지향, 함수형 프로그래밍이 있다. 1. 절차적 프로그래밍 절차 혹은 순서에 따라 프로그래밍을 하는 방식으로, 어떤 프로시저의 호출을 바탕으로 한..

g

[라이브러리] 정적(static) vs 공유(shared)

정적 라이브러리(Static Library)란? 프로그램 빌드 시에 라이브러리가 제공하는 코드를 실행 파일에 넣어서 빌드하는 방식의 라이브러리를 의미한다. 정적 라이브러리를 사용하여 컴파일하면 링커가 프로그램이 필요하는 부분을 라이브러리에서 찾아 실행파일에 복사한다. 실행파일에 다 들어가기 때문에 실행할 때 라이브러리가 필요 없이 다 포함되어 있다. 장점은 시스템 환경이 변해도 애플리케이션에 아무런 영향이 없고, 완성된 애플리케이션을 안정적으로 사용할 수 있다는 점이다. 반면에 사용하는 모든 오브젝트 코드를 실행 파일에 포함하기 때문에 메모리에 로드되는 애플리케이션 코드 크기가 커진다는 단점이 있다. 리눅스에서는 확장자 a가 붙는다. 공유 라이브러리(Shared Library)란? 어떤 라이브러리가 제공..

반응형