목록IT (165)
And Brain said,
오늘은 현재 안드로이드의 공식 언어이자 태생부터 진화된 자바를 표방한 언어, Kotlin에 대해 알아보고 Kotlin으로 구축하는 간단한 Spring boot 예제까지 배워보도록 하자. 최신 언어가 기존의 언어를 대체하기란 정말로 쉽지 않다. 대부분의 사람들은 익숙한 것을 좋아하고 또한 기존 코드가 너무 방대하면 손을 댈 엄두를 못 내게 된다. 특히, 자바와 같이 높은 완성도의 언어라면 특별한 이유가 있지 않는 한 대체할 이유를 느끼지 못하게 된다. 구글도 오라클과 소송만 아니었다면 자바를 계속 썼을 것이다. 선결 이유가 어떻든 Kotlin은 안드로이드의 공식 언어로 채택되었고 사람들에게 자신의 존재감을 드러냈다. Kotlin은 이러한 전략을 사용했다. 기존 언어와 호환 앞서 기존 언어를 대체하려 했던 ..
오늘은 간단하게 Publish Over SSH 플러그인을 이용하여 원격 서버에 배포를 해보겠다. 일단 환경은 이렇다. Jenkins가 존재하는 서버가 있고 Laravel 서비스가 존재하는 서버가 따로 있다. 그리하여 Jenkins로 Laravel 서버에 SSH 통신을 이용하여 자동 빌드 및 배포를 할 수 있도록 설계할 것이다. 바로 시작하자. 먼저 Jenkins에 Publish Over SSH 플러그인을 설치하도록 하자. 설치 이후 Dashboard -> Jenkins -> Configure System으로 가면 아래에 Publish over SSH가 존재할 것이다. 그러면 그 밑에 있는 SSH Server에 Name은 원하는 이름을 적고 Hostname으로 IP혹은 도메인을 적어준다. Username에..
프로그래밍에서 변하지 않는 것을 찾기란 쉽지 않다. 그런데 도대체 변하지 않는 것들은 왜 필요한 걸까? Redux에서는 변하지 않는 상태 객체를 저장함으로써 시간을 달려 과거로 갈 수 있다. 이는 아래에서 다시 설명하도록 하겠다. 자, 오늘은 이 불변성의 목적과 이점에 대해 얘기하고자 한다. 먼저, 불변성에 대해 알아보자. 불변성이란, 변하지 않는 성질이다. 이게 끝이다. 프로그래밍적으로 좀 더 자세히 말하자면, 변수 영역의 값은 변하지 않고 값을 재할당할 시에 참조하던 메모리 주소값만 변경시키는 것이 불변성을 가진 변수다. 이제 Java의 String에 대해 살펴보자. Java의 String은 불변하는 참조타입이다. String 객체는 따로 String constant pool에서 관리하는데 이는 He..
직렬화와 역직렬화는 객체 데이터의 상태 그대로 저장하고 필요할 때 다시 꺼내서 사용하기 위해 쓰인다. 먼저 직렬화는 객체 데이터를 바이트 스트림으로 바꾸어 연속적인 데이터로 변환하는 것이다. 역직렬화는 그 반대로 바이트 스트림을 꺼내와 저장된 데이터의 상태 그대로 변환해주는 것을 말한다. 직렬화로 변환된 바이트 스트림은 플랫폼에 종속되지 않는 멀티플랫폼에서 역직렬화가 가능한 데이터다. 자바에서는 모든 클래스를 직렬화할 수는 없고 이렇게 Serializable 인터페이스만 구현해주면 직렬화와 역직렬화가 가능해진다. 또한 serialVersionUID 고유값을 주어 역직렬화 시에 같은 클래스인지 일치 여부를 확인한다. 만약 커스텀하게 주지않는다면 직렬화 시 자동 생성되어 직렬화 데이터에 포함된다. 하지만 직..
- Redux? Redux는 자바스크립트 앱을 위한 예측 가능한 상태 컨테이너입니다. Redux는 여러분이 일관적으로 동작하고, 서로 다른 환경(서버, 클라이언트, 네이티브)에서 작동하고, 테스트하기 쉬운 앱을 작성하도록 도와줍니다. 여기에 더해서 시간여행형 디버거와 결합된 실시간 코드 수정과 같은 훌륭한 개발자 경험을 제공합니다. 여러분은 Redux를 React나 다른 뷰 라이브러리와 함께 사용할 수 있습니다. Redux는 매우 작지만(의존 라이브러리 포함 2kB), 사용 가능한 애드온은 매우 많습니다. 위 글은 Redux 공식 홈페이지의 Redux에 대한 설명이다. 이해가 안 되더라도 잠시 Redux는 제쳐두고 Redux를 이해하기 위해 먼저 Flux 패턴에 대해 간단히 배워보도록 하자. - Flux..