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

개발85

타임리프에서 nextjs 로 바꾼 이유 ( 부제 : 알뜰폰 비교 사이트 개발 ) 요즘 리액트를 많이 쓴다길래 우선 후기 채용 측면에서도 리액트를 프론트에서 다룬다면 유리하지 않을까 생각했다.. 타임리프도 서버사이드 랜더링을 지원하지만 배포과정에서 서버 ( spring boot ) 와 묶여 있기 때문에 불필요한 서버 배포가 함께 나갔다. 뭐 이건 이유중에 하나이고 내가 피부로 느끼면서 개발했을때 타임리프에서 next js 로 바꾸면서 더 나아진 점을 정리해보면 - 서버사이드 랜더링 과정이 좀더 편리하다 ( 자바스크립트 문법이기 때문에 / 타임리프는 타임리프 문법 + 자바문법의 복합체 ) - 패지키지별 관리가 좀더 용이하다. ( 타입스크립트의 장점이자 scss 나 기본 클래스 개념으로 사용하면서 기존 백엔드처럼 관리하기 쉬워졌다 ) - 배포 과정이 빠르다 ( next js프로젝트를 분리.. 2021. 9. 14.
MySQL 아키텍처 MySQL 아키텍처 개발하면서 table 설계를 하다보면 CREATE TABLE 'tableName' ( ~ ) ENGINE = InnoDB 라는 DDL 을 보게 될 것이다. 예전에는 아무 생각이 없었지만 MySQL 책을 읽다보니 InnoDB 가 무엇인지에 대해 알게 되었다. InnoDB 가 무엇인지에 대한 설명을 하려면 MySQL 에 대한 아키텍처 이야기를 해야한다. 플러그 스토리지 엔진 모델 MySQL 이라고 불리는 RDBMS 는 2가지의 처리 영역을 가지고 있다. MySQL 엔진 ( or custom 파서 ) 우리가 JDBC 등으로 보내는 쿼리를 파싱하고 옵티마징하고 실행하는 MySQL 엔진의 처리영역 스토리지 엔진 ( InnoDB or MyISM or 서드파티 스토리지 엔진 ) 데이터의 읽기 / .. 2020. 12. 1.
RDB 왜 MySQL 인가? 오라클과 비교해본다면 당연히 가격적으로 MySQL 이 경쟁력을 가진다. 옛날 시장에서 오라클과 MySQL 이 가지는 특징이 달랐다. 오라클은 데이터를 중앙으로 모아서 관리하는 특징이 있었고 ( 그렇기 때문에 대용량이며 가격이 비쌋다 ) 최근 중앙집중형에서 마이크로 서비스로 넘어가기 시작하면서 오라클보다 MySQL 로 넘어가는 추세이다. MySQL 은 태생부터 고급 엔터프라이즈 장비가 아니다. 그렇다면 MySQL 과 MSSQL 을 비교해보면 어떨까? MsSQL 은 윈도우에서만 사용할 수 있는 한정적인 구조이다. 하지만 MySQL 은 여러 환경에서 사용이 가능하다 ( 그만큼 확장성이 용이하다. ) 2020. 11. 11.
개인 앱개발 일지 인프라 aws rds 생성 aws instance backend api 생성 및 프로젝트 배포 깃랩 프로젝트 2개 생성 ( iOS, backend ) https://gitlab.com/playstage1 iOS 앱 개발 카카오 로그인 구현 pod 라이브러리 설치 카카오 developer 에 앱 등록 토큰 받는 로직 구현 로그아웃 구현 Backend 개발 프로젝트 생성 카카오 로그인 구현 카카오로 로그인 요청이 왔을시 해당 유저 저장 테스트 코드 작성완료 2020. 8. 22.
swift 사용기 옛날에 건너건너 앱출시를 한번 해본 경험이 있는데, 기억이 나질 않는다 이번에 개발하면서 살짝 정리해보겠다 처음에 xcode 를 설치하고 create project 했는데 스토리보드가 없더라 .. 스토리 보드 생성하고 이를 컨트롤할 switf 확장자 파일을 생성해야 한다. 보통 ViewController 라고 표현하며 다음과 같은 세팅이 필요하다. storyboard 에 그리고 controllerView 를 연결시켜줘야한다. 그리고 유효한 라이브러리를 설치하기 위해서 $ sudo gem install cocoapods 커맨드라인을 실행한다. 그런다음 실제 사용할 디렉토리로 이동한 다음 > pod init ( 포드 파일 생성 ) > vim Podfile ( 생성된 포드파일에서 추가할 라이브러리를 add 해.. 2020. 8. 21.
클래스와 멤버에 대해서 멤버에 대해서 정보 은닉, 혹은 캡슐화라고 하는 개념은 자바에서 중요하다. ( 물론 자바 뿐만이 아니겠지만 ) 정보를 은닉하면 시스템 개발 속도가 높아진다. ( 여러 컴포넌트를 병렬로 개발할 수 있기 때문에 ) 각 컴포넌트의 디버깅 속도가 빨라진다. 시스템 최적화가 더 쉽다. 소프트웨어의 재사용성이 높아진다. 단위 테스트를 진행하기 좋다. 멤버 ( 필드, 메서드, 중첩 클래스, 중첩 인터페이스 ) 에 부여할 수 있는 접근 수준은 네 가지다. private class 는 상위 클래스에서만 접근이 가능하다. protected 는 해당 패키지에서만 접근이 가능하고 public 은 모든 곳에서 접근할 수 있다. 클래스와 멤버에 대해서 effective java 에서 몇가지 가이드가 되어있다. 여기서 의아한 점은.. 2020. 7. 27.