Latest Posts

  • for문 조건문

    14 Dec 2020 - breadkey

    Fault

    String string = 'test';
    final minLength = 6;
     
    for (int _ = 0; _ < minLength - string.length; _++) {
      string = ' $string';
    }
     
    expect(string.length, 6);
    

    Result

    Expected: <6>
      Actual: <5>
    

    Why?

    의미를 생각하면 맞는 것 같으나, for 조건문이 true인지 확인하기 위해 다시 한 번 조건문을 거쳐가므로 변경된 string.length를 사용하게 된다.

    tag: dart
  • 날아라 현정이

    08 Dec 2020 - breadkey

    tag: game
  • 스프링 입문 6. 프레젠테이션 층의 설계와 구현

    09 Apr 2019 - breadkey

    스프링 MVC의 개요

    스프링 MvC와 MVC2 패턴

    J2EE 패턴의 FrontController 패턴을 기초로 하지만 클래스가 역할별로 분명하게 분리되고, 클래스간 관계가 느슨하다. 각 Model View Controller는 인터페이스가 정의되며 상호간 의존이 없다.

    스프링 MVC와 어노테이션

    스프링 1부터 포함됐지만 학습할 내용이 많았고 설정의 확장이 복잡해 주목받지 못했다. 하지만 스프링 2.5에서 어노테이션을 채용했을 때 부터 클래스에 @Controller 어노테이션만 선언하면 되고 실행 메서드의 매핑도 @RequestMapping 어노테이션만 설정해주면 되므로 매우 간단해졌다.

    tag: spring
  • 안드로이드 체스 앱 프로젝트 2 -Server ER Diagram-

    08 Apr 2019 - breadkey

    erDiagram User }|--o{ Game : plays User ||--o{ RankRecord : has Game }o--o{ RankRecord : captures Game ||--o{ Move : logs
    tag: spring
  • 안드로이드 카카오로 로그인 하기

    01 Apr 2019 - breadkey

    1. KakaoSDK 설치(Gradle)

    1.1 Repostiory 등록

    build.gradle(Module: app)

    repositories {
        ...
        mavenCentral()
        maven { url 'http://devrepo.kakao.com:8088/nexus/content/groups/public/' }
    }
    

    1.2 version 설정

    gradle.properites

    KAKAO_SDK_VERSION = 1.17.0 # 현재 최신 버전
    
    tag: android
  • Mini-C 언어의 Lexical Analyzer 작성

    27 Mar 2019 - breadkey

    1. 서론

    코드가 작성된 파일에서 Mini-C 언어의 어휘 문법과 일치하는 token들을 추출해내는 프로그램을 작성하였다.

    tag: compiler
  • A comparison of f-versions and non-f-versions of the I/O functions

    24 Mar 2019 - breadkey

    f-version 입출력 함수와 non-f-version 함수의 차이점은 다음과 같이 크게 2가지로 볼 수 있다.

    tag: system-programming
  • Kotlin in Action 1. Kotlin: what and why

    20 Mar 2019 - breadkey

    1. Kotlin: what and why

    자바 플랫폼에서 돌아가는 새로운 프로그래밍 언어이다. 간결하고 실용적이며, 자바 코드와의 상호운용성을 중시한다. 즉, 모든 자바 라이브러리나 프레임워크를 코틀린에서도 사용할 수 있다.

    tag: kotlin
  • 인증을 다루는 방법

    18 Mar 2019 - breadkey

    서론

    1. 인증(Authentication) 기능이란?

    한마디로 애플리케이션에 액세스하는 사용자를 특정하는 기능이다.
     
    일반적인 방법은 다음과 같다.

    1. 로그인에 필요한 사용자명과 패스워드를 각 애플리케이션이 가진 데이터베이스에 등록해둔다.
    2. 사용자가 애플리케이션에 액세스할 때 사용자명과 패스워드를 직접 입력하게 함으로써 해당 사용자를 특정한다.
    tag: android
  • 컴파일러 Lex

    18 Mar 2019 - breadkey

    Lex

    Lexcial Analyzer는 소스 코드에서 lexeme을 골라내 이 들을 keyword, operator, identifier등으로 나눈 토큰으로 만든다.
     
    Lecial Analyzer를 구현하는 방법은 Hand-written, regular expression으로 패턴을 기술하고 패턴대로 토큰을 만드는 Pattern-directed 방법이 있다.

    tag: compiler
  • 스프링 입문 5. 비즈니스 로직 층의 설계와 구현

    13 Mar 2019 - breadkey

    도메인 모델인지, 트랜잭션 스크립트인지에 관계 없이 업무 처리(비즈니스 로직)을 하는 것이 비즈니스 로직 층의 주요 역할이다. 오목형 레이어와 DI를 활용하면 데이터 액세스나 웹을 경유하는 기술 처리를 비즈니스 로직 층 이외의 층에 맡길 수 있다. 하지만 비즈니스 로직과 밀접한 관계가 있는 트랜잭션 처리는 비즈니스 로직 층에서 잘 대응해야 한다.

    tag: spring
  • IntelliJ에서 Maven을 활용하여 Spring 개발환경 구축하기

    12 Mar 2019 - breadkey

    Maven이란?

    아파치 재단에서 개발하는 Java용 프로젝트 관리 도구이다. 팀의 의사소통 기능도 제공하며 빌드에 관한 기능들을 제공하여 빌드 도구도 된다. 또한 라이브러리 관리도 pom.xml 파일을 통해 할 수 있다.

    tag: java intellij maven spring
  • 스프링 입문 4. 데이터 액세스 층의 설계와 구현

    26 Jan 2019 - breadkey

    데이터 액세스 층과 스프링

    주요 역할은 데이터 액세스 처리를 비즈니스 로직 층에서 분리하는 것이다. 데이터 액세스를 분리하지 않으면 소스코드에 로직과 데이터 액세스가 섞여 가독성이 매우 떨어지고 지저분해진다.

    DAO 패턴이란?

    데이터의 취득과 변경 등의 데이터 액세스 처리를 DAO라고 하는 오브젝트로 분리하는 패턴이다. 데이터 액세스 방식이 바뀌어도 DAO만 변경하면 되므로 비즈니스 로직에는 영향을 주지 않고 처리할 수 있다.

    DAO 패턴을 이용한 프로그램 이미지

    DAO 클래스는 보통 데이터베이스의 테이블별로 만들어진다. 기본적으로 테이블에 대한 단순한 CRUD를 갖춘 형태가 된다. 비즈니스 로직이 포함되지 않는 단순한 소스 코드이므로 테이블 정의 정보를 바탕으로 DAO를 자동 생성하기도 한다.

    tag: spring
  • 스프링 입문 3. 스프링 AOP

    20 Jan 2019 - breadkey

    공통화할 수 있는 처리는 오브젝트 안에 없는 편이 소스 코드의 가독성도 좋아지고 컴포넌트로서의 역활도 명확해진다. 테스트도 쉬워진다.
     
    어떤 오브젝트가 원래 하지 않아도 될 로깅이나 트랜잭션 등의 처리를 그 오브젝트에서 분리해서 별도의 오브젝트로 구현하는 기술이다.

    tag: spring
  • 스프링 입문 2. 스프링 DI

    16 Jan 2019 - breadkey

    DI란?

    인터페이스를 이용해 컴포넌트화를 실현하는 것이다. DI를 직역하면 의존관계 주입으로, 쉽게 말해 오브젝트 사이의 의존 관계를 만드는 것이다. 오브젝트의 어떤 프로퍼티에 그 오브젝트가 이용할 오브젝트를 설정한다는 의미이다.
     
    DI를 구현하는 컨테이너는 의존성 주입 밖에도 클래스의 인스턴스화 등의 생명 주기 관리 기능이 있는 경우가 많다.
     
    인터페이스를 사용하지 않는 간단한 예를 들어 설명하면, 포켓몬 정보를 가져오고 갱신하는 등 관리할 수 있고 포켓몬 종족값의 총합을 계산해주는 포켓몬 도감 웹 애플리케이션을 생각해보자.
    소스코드

    tag: spring
  • 스프링 입문 1. 스프링과 웹 애플리케이션

    10 Jan 2019 - breadkey

    스프링의 최신 정보

    스프링의 역사

    2002년 등장
    2006년 SSH(스트럿츠, 스프링, 하이버네이트)구성으로 웹 애플리케이션 프레임워크로 이용

    현재는 스트럿츠 < 스프링MVC

    tag: spring
  • 젠킨스

    09 Jan 2019 - breadkey

    Goals

    • 젠킨스가 무엇인지 이해한다.
    • 현재 진행중인 프로젝트에 젠킨스를 연동한다.
    tag: jenkins
  • Applying UML and Patterns Chapter.6

    03 Jan 2019 - breadkey

    Goals and Stories

    고객과 사용자들은 다양한 목표(UP에서는 needs)를 가지고 있으며 컴퓨터 시스템이 이들이 목표를 이룰 수 있게 도와주길 원한다. 다양한 목표들은 여러가지 방법으로 분석될 수 있는데, 그 중 유스케이스는 고객들도 한눈에 볼 수 있을 정도로 간단하고 친숙한 좋은 방법이다.

    tag: object-oriented applying-uml-and-patterns
  • 안드로이드 체스 앱 프로젝트 1 -요구사항 분석-

    03 Jan 2019 - breadkey

    요구사항 분석

    목표 찾기

    이 앱을 사용하면서 성취하고자 하는 몇가지 목표를 찾아보았는데 다음과 같았다.

    • 수준에 맞는 상대와 체스를 하고싶다.
    • 내가 한 게임을 복기하고싶다.
    • 다른 사람의 기보를 보고싶다.
    tag: android
  • 안드로이드 첫번째 앱 만들기

    01 Jan 2019 - breadkey

    1. 화면 구성하기

    tag: android
  • 안드로이드 스튜디오 환경설정

    31 Dec 2018 - breadkey

    SDK 도구 권장패키지

    1. SDK Tools

    Android SDK Build-Tools

    필수. 안드로이드 앱을 빌드하는 도구를 포함함

    tag: android
  • 서버에 무들 설치하기

    28 Dec 2018 - breadkey

    tag: linux docker moodle
  • Applying UML and Patterns Chapter.1

    27 Dec 2018 - breadkey

    Object-Oriented Analyasis and Design


    tag: object-oriented applying-uml-and-patterns