본문 바로가기

PROGRAMMING

(9)
[Clean Architecture] 책 읽기 7장 ~ 11장 3부 설계 원칙 좋은 소프트웨어 시스템은 깔끔한 코드로부터 시작한다. 좋은 아키텍처를 정의하는 원칙을 SOLID 라고 하고 이 원칙을 준수해서 작성하는 코드는 좋은 아키텍처를 만들 수 있다. SOLID 원칙은 클래스를 만들고 결합하는 방법에 대해 설명해준다. (여기서 클래스는 단순히 함수와 데이터를 결합한 집합의 의미) SOLID 원칙의 목적은? 중간 수준의 소프트웨어 구조가 1. 변경에 유연하고 2. 이해하기 쉽고 3. 많은 소프트웨어 시스템에 사용될 수 있는 컴포넌트의 기반이 될 수 있도록 만드는 것이 목적이다. (중간 수준의 소프트웨어는 모듈 수준이라고 이해하면 된다. 코드 레벨의 상위) 이 책의 설명 순서는 다음과 같다. SOLID -> 컴포넌트 세계의 SOLID를 대응하는 원칙 -> 고수준 아키..
[Clean Architecture] 책 읽기 1장 ~ 6장 분명 책은 1년 전에 샀지만 그때 당시에는 함수형 프로그래밍? 그게ㅔ뭔ㄷ.. 시절이라 흥미가 가지 않던 책이었는데 iOS에서 클린 아키텍처를 직접 프로젝트에 적용해보니 개발시간이 단축되는 느낌이나 편리한 느낌이 있었다.. 근데 왜 편리한지, 왜 객체 지향 설계 원칙을 준수하면서 아키텍처를 만들었는지, 근본적인 물음이 해결되지는 않았기 때문에 책을 읽으면서 생각을 정리해보려고 한돠,, 1장. 설계와 아키텍처란? 제대로 된 소프트웨어를 만들면 아주 적은 인력만으로도 새로운 기능을 추가하거나 유지보수할 수 있다. 변경은 단순해지고 빠르게 반영할 수 있다. 결함은 적어지고 잦아든다. 최소한의 노력으로 기능과 유연성을 최대화할 수 있다. 이런 일을 가능하게 해주는 것이 아키텍처라고 한다. 여기서 중요한 말은 유연..
LG ThinQ 오픈소스 목록 혼자 찾아보고 적은 것이라 정확하지 않은 정보일 수 있습니다. 글을 작성한 시간을 기준으로 검색하여 찾아보았습니다. 설명은 깃허브에 적혀있는 것을 번역한 문장인 것도 있고 직접 찾아 적은 것도 적게나마 있습니다. 문제가 된다면 지우겠습니다. objc 라이브러리가 꽤 있는 것 같습니다. 왜 당연히 swift로 했을 것이라고 생각했었는지 이해가 안가는 나자신.. 모르는 라이브러리가 훨씬 많고 LG 스토어랑 스마트 식품관은 cordova와 앵귤러를 사용한 것 같은데 개념조차 잘 몰라서 맞는지는 잘 모르겠습니다..ㅎㅎ 왜 찾아보았냐고 하면 자기소개서 쓰는데 앱에 대해 더 알고 싶어서 ㅠ.ㅠ 찾아보았습니다. AFNetworking 2.7.0 (MIT) Objective-C 로 쓰여진 Alamofire과 형제인 네..
API API : Application Programming Interface 내부의 구현사항을 드러내지 않고 사용자가 필요한 정보만을 제공하는 것 API 의 등장 1964년 하드웨어의 독립성을 위해 많이 사용되었습니다. 1980년도 중반 Mac OS, Windows 등 OS 운영체제에서 제공하는 API를 이용해서 애플리케이션을 민들었습니다. 요즘에는 Server에서 제공하는 Web API들을 사용하여 (대부분 REST API) JSON 형식의 정보를 얻어올 수 있습니다. Frameworks / Libraries 프레임워크나 라이브러리에서 이용할 수 있는 클래스나 함수들도 API 라고 부릅니다. 또한 프로젝트 내부에서 쓰여지는 클래스나 모듈 또한 인터페이스 or API 라고 합니다. Open API = Publ..
REST API REST API 기계와 기계가 규격화된 방식으로 인터넷 또는 웹을 이용해서 통신할 수 있도록 돕는 통신 규칙 REST API는 웹의 통신 규약인 http를 이용한다. API 컴퓨터의 기능을 실행시키는 방법 ex) print('hello world') REST API 다른 컴퓨터의 기능을 실행시키는 명령 인터넷과 웹을 통해서 나의 컴퓨터를 제어할 때 어떻게하면 시행착오를 줄이고 더 좋은 API를 만들 수 있는가에 대한 고민의 결과물 http를 이용해서 기계들이 통신을 할 때 http가 가진 잠재력을 최대한 이용할 수 있도록 유도하기 위한 모범사례라고 할 수 있다. Resource - uri로 읽어온다. - Collection (복수형): Element가 모여있는 것 - Element: Collection의..
react native 관해서 끄적 RIDI - 라프텔 https://ridicorp.com/story/react-native-1year-review/ 리액트 네이티브 앱 전환 그리고 1년 후 - 리디주식회사 RIDI Corporation 2020년 2월, 애니메이션 스트리밍 서비스 라프텔에서는 기존에 Android 와 iOS 각각 따로 구현되어 있던 애플리케이션을 리액트 네이티브 를 통해 개발을 통합하여 할 수 있도록 리빌드를 했습니다. ridicorp.com - iOS, Android 앱에서 react native로 전환하는 작업은 리소스를 많이 소모하겠지만, 서비스 개선을 함에 있어서 훨씬 유리하다. - iOS 개발자, Android 개발자, 서버개발자 구조에서 front-end 개발자, backend 개발자 구조로 바뀌어 서비스 개..
[c++] 레퍼런스에 대한 고찰 (1311 할일 정하기 1) DP 비트마스킹 문제를 메모이제이션으로 푸는데 레퍼런스 변수로 선언하지 않았을 때 시간초과가 발생했다. 왜 레퍼런스를 쓰는지에 대한 궁금증을 풀기위한 글을 적어봅니다. 우선, 레퍼런스란 참조형 변수 (Reference Vaiable) 참조만 한다는 것이다. 이게 무슨말이냐면 int &temp = dp[work]; dp[work] 에 &를 이용하여 temp 라는 별명을 붙여준 것이다. == 이름만 같고 같은 변수 == 같은 메모리를 공유한다 ! 같은 메모리를 공유한다는 것은 temp 의 값을 변경해도 dp[work] 의 값이 바뀐다는 것이다. 반대로 temp 를 레퍼런스로 선언하지 않는다면? temp 와 dp[work] 는 다른변수이기 때문에 temp 값을 바꿔도 dp[work] 의 값이 바뀌지 않는다. ..
비트 마스킹 (활성화, 해제, 확인) i 번째 비트 활성화하기 b | (1