본문 바로가기
  • Where there is a will there is a way.

개발/기타개발25

swift 사용기 옛날에 건너건너 앱출시를 한번 해본 경험이 있는데, 기억이 나질 않는다 이번에 개발하면서 살짝 정리해보겠다 처음에 xcode 를 설치하고 create project 했는데 스토리보드가 없더라 .. 스토리 보드 생성하고 이를 컨트롤할 switf 확장자 파일을 생성해야 한다. 보통 ViewController 라고 표현하며 다음과 같은 세팅이 필요하다. storyboard 에 그리고 controllerView 를 연결시켜줘야한다. 그리고 유효한 라이브러리를 설치하기 위해서 $ sudo gem install cocoapods 커맨드라인을 실행한다. 그런다음 실제 사용할 디렉토리로 이동한 다음 > pod init ( 포드 파일 생성 ) > vim Podfile ( 생성된 포드파일에서 추가할 라이브러리를 add 해.. 2020. 8. 21.
트랜잭션에 대한 심화 이해 현대의 거의 모든 관계형 데이터베이스와 일부 비관계형 데이터베이스는 트랜잭션을 지원한다. 2000년대 후반에는 비관계형 데이터베이스가 인기를 얻기 시작하면서 새로운 데이터 모델을 선택할 수 있게 하고 기본적으로 복제와 파티셔닝을 제공함으로써 관계형 데이터베이스의 현 상황을 개선하는 것을 목표로 했다. 새로운 세대의 데이터베이스 중 다수는 트랜잭션을 완전히 포기하거나 과거에 인식되던 것보다 훨씬 약한 보장을 의미하는 단어로 트랜잭션의 의미를 재정의 했다. 다른 모든 기술적 설계 선택과 마찬가지로 트랜잭션은 이점과 한계가 있다. 트랜잭션은 기본적으로 ACID 의 특성을 지닌다. 이에 대해서도 설명이 되어있지만 기본적인 이야기는 본인 외에도 다른곳에도 정리가 잘 되어있기 때문에 생략한다. 단일 객체의 쓰기 원.. 2020. 6. 30.
마이크로 서비스 트랜잭션 내가 정리한 내용은 마이크로 서비스 패턴 (공)저: 크리스 리처드슨 에서 참조한 내용이다. 기존 앤터프라이즈 애플리케이션을 개발할 때 createOrder() 를 만든다고 해보자 1. 주문 가능한 소비자인지 확인 2. 주문 내역 확인 3. 소비자의 신용카드를 승인하고 4. DB 에 주문을 생성 4가지의 작업이 하나의 DB 에서 이루어 진다. 스프링 프레임워크를 사용할 경우에 우리는 흔히 @Transactional public void createOrder() { 1. 주문 가능한 소비자인지 확인 2. 주문 내역 확인 3. 소비자의 신용카드를 승인하고 4. DB 에 주문을 생성 } 로 해결할 수 있다. 이러면 ACID 가 보장된다. 하지만 , 마이크로 서비스 아키텍처는 1-> 소비자 서비스 2-> 주문 서.. 2020. 5. 24.
데이터 모델과 질의 언어 NoSql 등장 다양한 유형의 데이터 모델이 있고 각 데이터 모델은 사용 방법에 대한 가정을 나타낸다. 어떤 종류의 사용법은 쉽고 어떤 동작은 지원하지 않는다. 어떤 연산은 빠르지만 또 어떤 연산은 매우 느리게 작동한다. 하나의 데이터 모델만을 완전히 익히는 데도 많은 노력이 필요하다. 데이터 모델을 하나만 사용하고 내부 동작에 대한 걱정이 없을지라도 소프트웨어 작성은 그 자체로 충분히 어렵다. 그러나 데이터 모델은 그 위에서 소프트웨어가 할 수 있는 일과 할 수 없는 일에 지대한 영향을 주므로 애플리케이션에 적합한 데이터 모델을 선택하는 작업은 상당히 중요하다. !! NoSql 의 특징 오늘날 가장 많이 알려진 데이터 모델은 관계형 데이터모델 이다. 웹에서 볼 수 있는 대부분의 서비스 생산은 여전히 관계형 데이터베이스.. 2020. 5. 17.
애플리케이션 설계 ( 신뢰, 확장성, 유지보수성 ) 컴퓨터의 성능이 발달된 요즘 더이상 CPU 의 성능은 애플리케이션을 제한하는 요소에 우선순위에서 밀렸다. CPU 의 성능보다 우선적으로 고려되는 사항은 데이터의 양, 데이터의 복잡도, 데이터의 변화 속도이다. 애플리케이션을 설계 및 개발할때 서버 개발자는 다음과 같은 고민을 한다. 내부적으로 데이터를 정확하고 안전하게 유지하려면 어떻게 해야 할까? 시스템의 일부 성능이 저하되더라도 클라이언트에 일관되게 좋은 성능을 어떻게 제공할까? 부하 증가를 다루기 위해 어떻게 규모를 확장해야 할까? 어떤 api 가 좋은 서비스인가 ? 현재 읽은 책은 데이터 중심 애플리케이션이고 여기서 이야기하는 위와같은 고민은 3가지를 중점으로 다룬다. 신뢰성 ( Reliability ) 하드웨어 결함이나 소프트웨어 결함에 직면했을.. 2020. 5. 9.
SQL group by 와 기본적인 문법 이해 코딩인터뷰 완전분석에 나온 글을 인용했습니다. 조건 table Courses : courseID ( primaryKey ) , courseName , TeacherID Teachers : TeacherID ( primaryKey ) , TeacherName Student : StudenetID ( primaryKey ), StudentName StudentCourses : CourseID ( primaryKey ) , Student ( primaryKey ) group by 예제 1. 모든 학생의 목록을 뽑고 각 학생이 얼마나 많은 강의를 수강하고 있는지 확인하라 이 문제를 보게되면 우리는 다음과 같은 sql 을 작성할 수 있겠다. select Student.studentName , count(*) fr.. 2020. 3. 29.