DataGrip 데이터베이스를 관리하기 위한 툴은 다양합니다. 그중에 IntellJ를 만든 젯 브레인에서 IntellJ와 유사한 인터페이스로 데이터 그립이라는 툴이 있습니다. MariaDB나 오라클 및 아주 다양한 DBMS를 지원합니다. 기타 MySQL 워크벤치나 데이터베이스 관리 툴에 비해 빠른 속도와 효율적으로 데이터를 검색할 수 있습니다. 인텔리 J나 안드로이드 스튜디오를 써보신 분은 알겠지만, JetBrain사의 툴은 코드 입력 시 다양하게 조합하여 기능을 구현할 수 있는데요. DataGrip도 인터페이스가 이와 유사해서 매우 편리하게 쿼리를 실행해 볼 수 있습니다. ER 다이어그램 보기 ▼ 데이터베이스 테이블을 더블클릭 하면 다음과 같이 데이터의 값과 항목들이 나타납니다. 현재 값이 없기 때문에..
이전 포스팅에 이어서 간단한 코틀린 문법을 전반적으로 알아보겠습니다. 코틀린은 현대적인 언어의 대부분의 장점을 가지고 있습니다. 그중에 타입추론과 타입체크가 편리하고 Nullable 을 도입함으로써 어플리케이션의 개발시 안정성이 높아졌습니다. 이번 포스팅에서는 코틀린이 가진 간단한 특징을 볼 수 있습니다. When 과 같은 구문은 스위치와 비슷하지만 훨씬 편리하고 다양하게 활용할 수 있어서 좋습니다. 기존의 자바보다 문자열 템플릿 또한 간결하고 활용범위가 넓습니다. 주석 ▼ 코틀린은 한 줄 주석과 블록 형태의 여러행 주석을 지원합니다. ▼ 블록 주석의 경우 안쪽에 또다른 주석을 넣을 수 있습니다. 문자열 템플릿 ▼ 문자열 안에서 ${} 구문을 통해 변수 또는 함수등을 사용할 수 있습니다. 조건문 ▼ 대부..
Kotlin, 코틀린은 매우 편리한 언어입니다. 예전에 비해서 많은 사람들이 사용하고 있고 특히 안드로이드 개발에 많이 사용되어집니다. 코틀린을 배우고 싶은 이유중에 하나는 최근에 스프링 부트를 개발하면서 코틀린으로 개발하는게 더 효율적인 것 같다는 생각과 어쩌면 앞으로는 자바 보다는 코틀린으로 개발하는 것이 더 트랜디한 방향으로 굳어질 것 같아서입니다. 또한 코틀린은 최근에 나온 대부분의 언어와 비슷하며 배우기도 쉽다고 생각됩니다. 오늘은 코틀린의 기본 문법에 대해서 알아보겠습니다. 패키지 정의 및 imports ▼ 패키지 정의와 imports 구문은 다음과 같이 소스 코드의 최상단에 기술합니다. 프로그램 시작점 ▼ 코틀린 애플리케이션의 시작점은 main 함수입니다. ▼ 배열 형태의 문자열을 인자로 받..
GitHub 토큰 로그인? 최근에 Github에 아이디 패스워드를 이용해서 로그인하려면 에러가 납니다. 이유를 찾아보니 최근에는 Access Token을 만들어서 토큰 인증 방식으로 로그인해야 한다고 합니다. Password authentication is temporarily disabled as part of a brownout. Please use a personal access token instead. Please see https://github.blog/2020-07-30-token-authentication-requirements-for-api-and-git-operations/ for more information. 저도 잘 모르고 있었는데 다음과 같은 제목의 만료 메일이 와서 로그인 토..
아이폰을 개발하다보면 스크롤 뷰를 많이 사용합니다. 제한된 영역에서 넓은 화면을 구현하기 위해서 입니다. 오토레이아웃을 사용할 경우 스크롤 뷰를 구현하기가 조금 까다롭습니다. Xcode가 버전업 되면서 현재는 ContentView와 FrameView에 오토레아이웃을 걸고 사용합니다. 하지만 SwiftUI 에서는 아주 쉽게 스크롤 뷰를 만들수 있습니다. 대신 조금 낮설긴합니다. GeometryReader를 이용해서 3개의 화면을 만들고 스크롤 뷰로 페이징하는 방법을 알아보겠습니다. 스크롤 뷰로 페이지 뷰 만들기 ▼ 아래 코드를 이용해서 페이징 처리가 가능합니다. colors 변수로 화면에 포함될 색상을 배열로 만듭니다. GeometryReader의 proxy 속성으로 각 화면의 화면 크기를 구합니다. .h..
MariaDB 관리 MariadDB 의 기초적인 사용자 관리와 간단한 SQL 구문을 이용해 데이터베이스 스키마와 테이블을 만들고 데이터를 삽입하는 법을 알아보겠습니다. ROOT 사용자 접속 MariadDB를 관리와 사용자를 만들고 제거하기 위해 root로 접근해야 합니다. 사용자 관리 루트 사용자로 접속하게되면 모든 설정을 수정하거나 사용자를 관리할 수 있지만 이는 보안적으로 결함이 되기도 합니다. 그래서 일반 사용자를 만들어 특정데이터에 접근을 사용자마다 제한을 두는 편이 좋습니다. 1) 사용자 생성과 권한 부여 (*는 전체를 나타냅니다.) sql > grant 권한종류 on 스키마이름.테이블이름 to 사용자이름@호스트 identified by '비밀번호'; 2) 사용자 삭제 sql > drop use..
package.json 파일에 실행 스크립트를 보면 다음과 같이 start, build, test, eject 4가지 명령이 있습니디. 일반적으로 start는 개발 모드 build는 배포용 빌드라고 알고 있습니다. 리액트(React) 에서 처음 공부할 때 중요하다고 생각되서 정리하는 차원에서 조금 더 자세히 차이점을 알아보고 실행하는 옵션들에 대해서 알아보겠습니다. (1) npm start 개발 모드로 프로그램을 실행하는 명령어 입니다. HMR(hot-module-replacement)가 동작해 수정과 동시에 화면이 변경됩니다. 개발 모드에서 코드에 에러거 있을 경우에는 브라우저에 메시지를 출력합니다. https 실행 옵션을 통해 https 인증서 없이 임시로 https 형태로 url을 만들 수 있습니다..
Objective-C로 아이폰 앱을 만들 때는 #pragma mark - 주석 내용을 포함해서 주석을 나타내던 것이 Swift로 넘어오면서 MARK로 변경되었습니다. 기존의 #pragma라는 부분을 더 이상 쓰지 않아도 됩니다. 또한 TODO, FIXME와 같은 구문도 추가할 수 있습니다. 다른 언어 C++, C에서는 보통 전처리 구문으로 인식하는 #pragma는 define이나 include와 같이 사용됩니다. 하지만 Xcode에서는 이를 전처리 구문으로 쓰기보다는 메서드의 구역을 나눌 때 보통 사용합니다. 스위프트 같은 경우에는 extension이라는 문법이 추가돼서 메서드의 구분을 줄 때 extension을 사용하기도 합니다. 영역 구분관련 주석의 종류 // MARK : 설명 // TODO : 할 ..
컴퓨터 프로그래밍에 제네릭이라는 용어가 있습니다. 제네릭 타입은 클래스나 인터페이스 또는 메서드를 정의할 때 타입을 파라미터로 사용합니다. 즉 가변 타입 클래스, 인터페이스, 메서드라고 생각하면 조금 알기 쉽습니다. 제네릭은 다음과 같은 두 가지 장점이 있습니다. 또한 다음의 장점은 코드의 재사용성을 높혀줍니다. 컴파일시 강한 타입 체크를 할 수 있다. (Stronger type checks at compile time) 형변환 코드를 없앤다. (Elimination of casts) ArrayList ▼ 간단한 예로 Java에서 자주 쓰는 ArrayList로 예를 들겠습니다. 다음과 같은 코드를 사용할 때 객체 생성시 타입이 String으로 정해지고 우리는 이 값을 사용하기 위해서 형변환을 하지 않습니..
하버드 대학교 강의 중에 CS50이라는 온라인 강의가 있습니다. 비전공자를 위한 강의로 컴퓨터의 다양한 기초지식을 배울 수 있게 해 줍니다. 영어공부도 하고 잘 모르는 기초지식을 쉽게 알 수 있어서 정말 좋습니다. 한 강의당 약 2시간 정도 되는데 다음과 같은 것들을 배울 수 있습니다. 컴퓨터에 대해서 잘 알고 있다고 해도 분명 도움되는 부분이 많을 겁니다. 오늘 소개해드릴 CS50 IDE는 이 강의를 위해 만들어진 툴 같습니다. 처음에는 이런 유사한 툴들이 많아서 크게 신경 쓰지 않았는데 리눅스 터미널 환경도 제공하고 있어 간단한 프로그래밍 연습에 좋을 것 같습니다. CS 50 커리큘럼 Week 0 - Scratch (스크래치) Week 1 - C (C 언어) Week 2 - Array (배열) Wee..
컴퓨터 프로그래밍에는 프로세스라는 개념이 있습니다. 프로세스란 실행환경이라고 생각하면 됩니다. 컴퓨터에는 메모리와 CPU가 있고 특정 프로그램이 할당한 메모리 공간과 그 외 자원들을 포함한 실행 환경을 프로세스라고 합니다. 이는 분명히 프로그램이나 애플리케이션과는 조금 다른 개념입니다. 한 개의 프로그램 또는 애플리케이션에 여러 개의 프로세스가 포함될 수 있기 때문입니다. 위에서 설명한 프로세스와 비슷한 하위 개념인 스레드가 있습니다. 스레드는 다른말로 lightweight process (경량 프로세스)라고도 합니다. 이유는 프로세스를 만드는 비용에 비해 스레드를 만드는 비용이 적게 들어가기 때문입니다. 스레드들은 어떠한 프로세스에 종속되며 프로세스에 할당된 메모리 또는 파일과 같은 자원을 스레드들끼리..
예외처리(Exception)란? 처음 프로그래밍을 하게 되면 그냥 동작하는 것에 중점을 두기 때문에 예외처리는 무시하고 넘어가기 쉽습니다. 예외는 에러(Error)의 범주에 포함됩니다. 에러는 예외를 포함에 시스템의 이상, 하드웨어의 문제등을 포괄적으로 나타내는 개념입니다. 가장 대표적으로 OutOfMemoryError를 말할 수 있습니다. 말 그대로 메모리가 부족해서 시스템이 중단 되는 상황이죠. 예외처리란 예외가 발생할 것을 개발자가 미리 예측해서 이를 제어하고 비정상 종료를 피하기 위한 처리 방법입니다. 자바를 포함한 대부분의 언어들은 이러한 예외상황을 처리하고자 Try Catch 문을 사용해서 처리합니다. 다음과 같이 두 문장으로 정리를 할 수 있습니다. 메서드 내에서 오류가 발생했을때 시스템에 ..