일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- mvvm
- MotionLayout
- mysql
- 동영상
- Observable
- RxKotlin
- php
- MediaSession
- node
- Koin
- GCP
- 인앱결제
- list
- google play
- Android
- android13
- SwiftUI Tutorial
- SWIFTUI
- junit
- Android 13
- 테스트 자동화
- rx
- databinding
- Kotlin
- Animation
- paging
- Reactive
- MediaPlayer
- PagingLib
- node.js
- Today
- Total
목록전체 글 (142)
봄날은 갔다. 이제 그 정신으로 공부하자
개발 환경을 구성하고 DB연결하고 라우터 처리까지했으니 이제 세션 관리 기능을 개발해야 합니다. 힘드네요... 세션이란? 세션은 서버에 저장되는 key-value 형식의 데이터로 세션은 서버에서만 생성 할 수 있어 사용자의 로그인 상태를 확인할 때 사용 됩니다. 세션의 동작 서버측에서 세션을 생성할 땐, 클라언트에게 SID(session ID)를 발급합니다. SID가 발급되면 connect.sid 쿠키가 생성된 것을 확인 할 수 있습니다. 서버측엔 해당 클라이언트가 사용할 세션을 저장합니다. 클라이언트에 SID 쿠키가 저장되어 있으니 클라이언트로부터 request가 오면 request의 쿠키로부터 SID를 확인 할 수 있으므로 해당 클라이언트의 세션을 매핑해 사용할 수 있습니다. 세션 사용 방법 Expr..
이제 슬슬 코딩에 들어가네요. node.js는 기본적으로 시작 파일인 index.js에서 라우터 관리를 하는데 서비스를 개발하다보면 라우터가 100개 이상이 되는 경우가 자주 생깁니다. 이런 경우 index.js의 코드 복잡도가 매우 증가하므로 관리 차원에서 기능별로 쪼개서 관리할 필요가 있습니다. 이 글에서는 복잡도 관리를 위해 "setting" 라우터를 별도로 분리해서 관리하는 방법에 대해 설명합니다. setting 경로 담당 파일 생성 "routers" 폴더 생성 "routers" 폴더에 setting.js 파일 생성 index.js에 setting 라우터 분산을 위한 코드 추가하기 index.js 파일에 setting 라우터 처리를 위한 코드를 아래와 같이 추가합니다. 아래와 같이 추가 시 이제 ..
이번 글에서는 기본적인 query를 node에서 어떻게 사용해야 하는지에 대해 기록하도록 하겠습니다. 여기에서는 기본적은 query에 대해서만 설명하고 추후 개발하는 웹서버가 점점 형태를 갖추어 가면서 조금 복잡한 query를 다루게 되면 별도의 글로 남기도록 하겠습니다. 글에서 사용되는 quiz 테이블의 정보는 다음과 같습니다. CREATE TABLE `quiz` ( `qid` INT NOT NULL AUTO_INCREMENT, `createdAt` DATE NOT NULL, `category` VARCHAR(16) NOT NULL, `contents` VARCHAR(256) NOT NULL, `answer` VARCHAR(256) NULL, `comment` VARCHAR(256) NULL, CONS..
이번 글에서는 이전 글에서 설치한 mysql을 프로젝트에서 사용할 수 있도록 기본 설정을 한 후, DB를 생성하고 서비스에 사용될 table들을 만들고 프로젝트에 연결해주고 마지막으로 DBeaver을 연동하는 부분까지 설명합니다. 이전 글에서 mysql을 설치하였기 때문에 제대로 설치되었고 현재 어떤 상태인지 확인 $ brew services list mysql이 시작되어 있지 않다면 아래 명령어를 사용해 mysql 실행 $ brew services start mysql 아래 명령어를 통해 root 비밀번호 설정하기 $ mysql_secure_installation root 권한으로 mysql 접속 $ mysql -u root -p db 생성하기 mysql> create database newquizdb..
"node.js로 웹서버 만들기" 시리즈는 제가node.js를 사용해 웹서버를 만들면서 공부하는 내용을 잊어버리지 않고 기억하기 위해 기록하는 글 입니다. 이번 글은 그 첫번째 글로 내 Mac에 node.js와 웹 서버 개발에 필요한 각종 라이브러리들을 설치하는 부분에 대한 기록 입니다. 사전 작업 (작업 환경 설정) 가장 기본이되는 node.js와 mysql을 command 창에서 아래 명령어를 사용해 설치합니다. $ brew install node $ brew install mysql 아래 경로에서 코딩에 사용할 Visual studio code를 다운로드 받아 설치합니다. https://code.visualstudio.com 아래 경로에서 DB Tool인 DBeaver을 설치합니다. https://..
이 글은 제가 그간 개발하면서 경험한 애자일과 MVVM 구조 패턴에 대한 내용을 정리 글입니다. 애자일을 처음 접했을 때 서비스를 기준으로 팀을 구성하고 하나의 공통된 목표를 가지고 일하는 방법이 생소하지만 너무 마음에 들었습니다. 하지만 3~4개월이 지났을 때는 앱의 기능을 변경하는 것도 추가하는 것도 두려웠습니다. 전체 서비스에 대한 기획이 존재하는 것도 아니었고 처음 개발할 때부터 모든 기능을 염두해두고 개발한 것이 아니었기에 코드 복잡도는 계속 증가하고 있었고 그에 따라 기능 하나 변경할때도 다른 곳에서 사이드 이펙트가 발생할까 걱정이 되어 마음이 조마조마했습니다. 코드 복잡도가 한순간에 올라간 것이 아닌 차근 차근 올라간 것이라 처음에는 무슨 문제인지 인지를 못하고... 왜 이렇게 힘들지? 애자..
Singleton Pattern이란? 객체의 인스턴스가 오직 한개만 생성되는 패턴을 의미합니다. 싱글톤 패턴으로 생성된 인스턴스는 오직 한개만 생성되니 고정된 메모리 영역을 사용하기 때문에 해당 인스턴스에 접근할 때 메모리 낭비를 방지할 수 있고 이미 생성된 인스턴스를 활용하니 속도 측면에서도 이점이 있다고 볼 수 있습니다. 하지만 가장 큰 장점은 앱의 다른 화면 또는 클래스간에 데이터 공유가 쉽다는 장점이 있습니다. 싱글톤 인스턴스가 전역으로 사용되는 인스턴스이기 때문에 다른 클래스의 인스턴스들이 접근하여 사용할 수 있기 때문 입니다. 싱글톤 클래스는 멀티쓰레딩 환경에서 오직 한개의 인스턴스만 생성됨을 보장해야하기 때문에 이와 관련된 처리가 필요합니다. 예를 들어 내정보 관리 Class를 싱글톤 패턴으..
앞선 글(https://als2019.tistory.com/123)에서 설명한 것 처럼 iOS는 비동기 환경에서 실행된 다수 개의 Task 처리 완료 시 결과를 받아 처리할 수 있는 Dispatch Group을 지원합니다. android는 Dispatch Group을 지원하지 않지만 @Synchronized를 사용하면 iOS의 Dispatch Group과 동일하게 사용할 수 있습니다. 이글에서는 android 개발자를 위한 Dispatch Group에 대해 설명하도록 하겠습니다. 아래와 같이 두개의 Network API를 호출하고 비동기로 결과를 받는 코드가 있다고 가정해보겠습니다. MyNetworkModel.getList(offset: 0, limit: 20){ result -> // 작업할 내용 } ..