본문 바로가기

Programming

(208)
함께 자라기 함께 자라기 익스트림 프로그래밍, 테스트주도개발 등 많은 책들을 번역해주신 분이라는걸 알게되어, 이번에 책을 출판하여 보게 되었다. 내가 정말 자랄 수 있을까? 우리가 정말 함께 자랄 수 있을까? 우리가 정말 매일매일 함께 자랄 수 있을까? 이러한 질문들로 지금 나의 모습을 되돌아보게 되었다. 그리고 정말 이런 조직에서 함께 자라고 싶다는 생각이 들게 되었다. 나도 함께 자라기 위한 동기부여를 많이 받았다. 함께 자라기 애자일로 가는길 - 김창준 지음
자바 기반의 마이크로서비스 이해와 아키텍처 구축하기 최근의 서점에 가면 마이크로서비스 관련된 책들이 많아졌다. 사실 마이크로서비스 관련 이야기들은 몇년 전에 있었지만... SpringOne 2018 tour을 참석하면서 앞으로의 Spring의 변화, 진화를 볼수 있었다. 정말 많은 기술들이 나오고 지금보다 더 좋은 것들을 향한 장인정신의 개발자들의 삶을 보게 되었다. 마이크로서비스 관련된 책들이 많고, 두껍고, 어떻게 이해할 수 있을까? 고민 끝에 이 책을 보게되었다. 이 책을 통해 마이크로서비스에 대해 쉽게 설명을 해주고 있다. 모놀리스와 마이크로서비스 비교 등을 통해 설계, 구축, 테스트, 배포 등 마이크로서비스를 처음 접하는 관점에서 쉽게 설명되어 있어서 좋았다. 그리고 커피전문점 서비스를 사례로 이해가 쉽게 되었다. 이 책에 나온 많은 기술들도 더..
성공하는 프로그래밍 공부법 토비의 봄TV 스페셜 자바지기 박재성님 편을 보면서 자바지기 커뮤니케이션, SLiPP 스터디를 이끄시는 박재성님의 대해서 더 깊이 알고 싶은 마음이 생겼다.그리고 평소에 프로그래밍 공부를 하면서 뭔가 찜찜한 느낌과 막연한 느낌이 있었는데, 이 책을 통해서 다양한 프로그래밍 학습법들을 통해 많은 느낌과 도전들을 받게 되었다.지금의 나의 위치는 어디쯤에 있고, 어떻게 공부 해야되는지, 나만의 스타일은 무엇인지 등 되돌아보며 다시 앞으로 나아가야할 방향과 비전들이 흔들지 않고 꾸준히 걸어가야겠다는 프로그래머로서의 동기부여가 강하게 생겼다. 즐거움과 좌절과 다시 회복과 성장 등 누구나 한번쯤 겪는 삶에 대해서 공감이 되었다.특히 현직 프로그래머의 인터뷰를 통해 진솔한 마음과 생각이 더 감사하게 느껴졌다. 그리고..
Object의 clone() 복사 Object 클래스의 clone() 함수 implements의 Cloneable으로 구현하고Object의 clone() 함수를 재정의 한다. package clone; public class MyValue implements Cloneable{ private String name; private int age; public MyValue(String name, int age) { this.name = name; this.age = age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "MyValue{" + "name='" + name + '\'' + ", age=" + age + '..
객체지향의 사실과 오해 객체지향의 사실과 오해 역할, 책임, 협력 관점에서 본 객체지향 책 제목처럼 객체를 역할, 책임, 협력의 관점으로 바라봄으로써 객체가 무엇인지? 객체지향의 본질을 정확하게 알려주고 있다. 그동안 알고있던 객체지향의 잘못된 생각들을 깔끔하게 정리해 주면서, 앞으로 제대로된 객체지향의 방향으로 개발해야겠다. - 중요한 것은 어떤 클래스가 필요한가가 아니라, 어떤 객체들이 어떤 메시지를 주고받으며 협력하는가- 클래스는 객체들의 협력 관계를 코드로 옮기는 도구 "클래스와 구조와 메서드가 아니라 객체의 역할, 책임, 협력에 집중하라. 객체지향은 객체를 지향하는 것이지 클래스를 지향하는 것이 아니다." - 책임-주도 설계(Responsibility-Driven Design)- 디자인패턴(Design Pattern)..
문제해결과 컴퓨팅 사고 컴퓨팅 사고(Computational Thinking)는 자넷 윙(jeannette Wing) 교수가 2006년에 컴퓨터 학술지에서 언급한 이후로 컴퓨터 교육 분야에 이슈가 되고 있는 용어이다. 컴퓨터 프로그래밍에만 이용하는 방법이 아닌, 일상 생활의 여러가지 문제도 컴퓨팅 사고로 해결한다. 컴퓨터의 기초(배경)로 시작하여 알고리즘, 멀티미디어, 병렬처리, 인공지능, 정보보안 까지 다양한 주제로 쉽게 설명해주고 있다. 어렸을 때, 컴퓨터에 대한 호기심을 다시 불러 일으키는 느낌?ㅎ 그리고 나는 어떤 문제가 주어졌을 때, 컴퓨팅 사고를 하고 있는가...? 라는 생각이 들었다.(논리적으로 생각하고 있는가?) 컴퓨팅 사고의 개념으로 분해-> 패턴인식 -> 추상화 -> 알고리즘 -> 평가 분해 - 복잡한 문제를..
JPA JPQL JPQL *가장 단순한 조회방법 **EntityManager.find() **객체 그래프 탐색(a.getB().getC())*나이가 18살이상인 회원을 모두 검색하고 싶다면? JPA를 사용하면 엔티티 객체를 중심으로 개발문제는 검색 쿼리검색을 할때도 테이블이 아닌 엔티티 객체를 대상으로 검색모든 DB 데이터를 객체로 변환해서 검색하는 것은 불가능애플리케이션이 필요한 데이터만 DB에서 불러오면 결국 검색조건이 포함된 SQL이 필요 JPA는 SQL을 추상화한 JPQL이라는 객체지향 쿼리 언어 제공SQL과 문법과 유사 SELECT, FROM, WHERE, GROUP BY, HAVING, JOIN 지원JPQL은 엔티티 객체를 대상으로 쿼리SQL은 데이터베이스 테이블을 대상으로 쿼리 //검색String jpql ..
git 관련 git 관련 설치apt -get install git git 버전확인git --version git 환경설정git config --global user.name "이름" git config --global user.email "이메일" 변환된 소스 판별 컬러 설정git config --global color.ui "auto" git 환경설정확인git config -l 원격 저장소 생성mkdir git-workspace 원격 저장소 github 가져오기git clone https://github.com/이름/web1.git 파일만들기touch HelloWorld.java 파일 열기gedit HelloWorld.javavim HelloWorld.java 상태확인git status git 추가하기git add..