Amazon EC2(Elastic Compute Cloud)란? Amazon Web Service 상에서 안정적이며, 크기를 조정 가능한 컴퓨팅 파워를 제공하는 웹 서비스 이러한 가상화 서버(Virtual Server)를 '인스턴트(Instance)'라 부르며, 필요에 따라 한개의 인스턴스에서 수천 개의 인스턴스로 손쉽게 컴퓨팅 파워를 확장 가능 주요 특징 한 개에서 수천 개의 인스턴스로 확장 가능 모든 공개된 AWS Region에서 사용 가능 필요에 따라 인스턴스의 생성, 시작, 중단, 삭제 기능 Linux/Windows OS에서 사용 가능하며 모든 소프트웨어 설치 기능 사용한 사용량에 대해서만 시간 단위 비용 과금 다양한 비용 모델(온디맨드, 스팟, 예약) 선택 기능 프리티어(Free Tier) Li..
AWS 클라우드 용어 AWS는 전세계를 대상으로 클라우드 서비스를 제공하기 위해 전세계 주요 지역에 IDC(Internet Data Center)를 자체적으로 구축하여 운영한다. 이러한 클라우드 서비스를 위한 인프라 환경을 크게 리전(Region) 가용 영역(Availability Zone) 엣지 로케이션(Edge Location) 으로 구분한다. 리전(Region) 만약 서버가 한 지역에 있다면 자연재해 또는 불가항력으로 서버가 정지되었을때 대처할 수 없거나, 물리적 거리로 인해 빠른 속도를 낼 수 없다. 이러한 이유로 아마존은 전세계 주요 국가에 리전(Region)을 구축하여 해당 위치에서 가장 가까운 곳에서 클라우드 서비스를 이용할 수 있도록 서비스 제공한다. 가용 영역(Availability Zo..
클라우드 컴퓨팅이란? 인터넷이라는 통신 서비스를 활용한 컴퓨팅 서비스의 종류 개인용 컴퓨터가 아닌, 인터넷을 통해 연결된 원격 컴퓨터를 활용하는 기술 클라우드 컴퓨팅을 배워야 하는 이유 기업 입장에서 많은 초기 투자 및 운영 비용과 인력이 필요하지만 클라우드 컴퓨팅은 인프라 운영을 위한 환경(데이터 센터, 항온/항습, 전기시설 및 설비 등)이 필요하지 않는다. 클라우드 컴퓨팅 서비스 이용 방식 클라우드 서비스는 이용 방식에 따라 크게 3가지로 분류할 수 있습니다. 1. IaaS(Infrastructure as a Services) 서버를 운영하기 위해서는 서버 자원, IP, Network, Storage, 전력 등등 인프라를 구축하기 위해 여러가지가 필요 IaaS는 이러한 것들을 가상의 환경에서 쉽고 편..
다형성이란? 여러 가지 형태를 가질 수 있는 능력을 의미하며, 자바에서는 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 함으로써 다형성을 프로그램적으로 구현 조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있다. 참조변수가 사용할 수 있는 멤버의 개수는 인스턴스의 멤버 개수보다 같거나 적어야 한다. class Car { String brand; String engine; int door; ... } class SportCar extends Car { SportCar(String brand, int door) { super(brand, "sport", door); } } Car car = new SportCar("Kia", 4); // 조상클래스 타입의 참조변수로 자손클래스 인스..
static - 클래스의, 공통적인 인스턴스변수는 하나의 클래스로부터 생성되었더라도 각기 다른 값을 유지하지만, 클래스변수(static멤버변수)는 모든 인스턴스가 공유하기 때문에 같은 값을 갖는다. static은 붙은 멤버변수와 메서드, 초기화 블럭은 인스턴스가 아닌 클래스에 관계된 것이기 때문에 인스턴스를 생성하지 않고도 사용할 수 있다. 인스턴스 메서드와 static 메서드의 근본적인 차이는 메서드 내에서 인스턴스 멤버를 사용하는가의 여부에 있다. 사용될 수 있는곳 : 메서드, 멤버변수, 초기화 블럭 final - 마지막의, 변경될 수 없는 변수에 사용되면 값을 변경할 수 없는 상수가 되며, 메서드에 사용되면 오버라이딩(overriding)을 할 수 없게 되고, 클래스에 사용되면 자신을 확장하는 자손..
접근 제어자(access modifier) 멤버 또는 클래스에 사용되어, 해당하는 멤버 또는 클래스를 외부에서 접근하지 못하도록 제한하는 역활 접근 제어자가 지정되어 있지 않다면, 접근 제어자가 default이다. 사용될 수 있는곳 : 클래스, 멤버변수, 메서드, 생성자 public 접근 제한이 전혀 없다. protected 같은 패키지 내에서, 다른 패키지의 자손클래스에서 접근 가능 default 같은 패키지 내에서만 접근 가능 private 같은 클래스 내에서만 접근 가능 접근 제어자를 이용한 캡슐화 접근 제어자를 사용하는 이유는 클래스의 내부에 선언된 데이터를 보호하기 위해서이다. 데이터가 유효한 값을 유지하도록, 또는 비밀번호와 같은 데이터를 위부에서 함부로 변경하지 못하도록 하기 위해서는 외부로..
팀 역량 강화 왜 팀의 역량이 중요한가? 예전 소프트웨어는 크기가 작고 간단했지만 현대 소프트웨어는 신경쓸것도 더 많아지고 크기도 커지고 있다. 그것들을 혼자선 처리하긴 무리가 있기에 팀이라는 조직을 꾸리는것이다. 팀 역량이 프로젝트 전체에 역량으로 나타나기 때문에 팀의 역량이 중요하다 무엇이 팀의 역량에 영향을 미치는가? Psychological safety(심리적 안정) 기본적인 여유가 있어야 한다. 누구든 좋은 아이디어나 기술이 있다면 의견을 말할 수 있어야하고 비난받지 않을것이라는 확신이 있어야 한다. 안정되지 않은 팀은 정체될것이다. Impact of work(일에 대한 중요성인지) 내가 만든 사업이 어디에 어느정도 쓰였고 어떤곳에 긍정적 영향을 미쳤는지 본인이 알아야 동기부여와 자부심과 성취감..
"문화가 일을 한다" 공정과 도구보다 개인과 상호작용을 포괄적인 문서보다 작동하는 소프트웨어를 계약 협상보다 고객과의 협력을 계획을 따르기보다 변화에 대응하기를 카카오 문화 자기주도성 - 권한과 책임 주도적이고 빠른 의사결정을 위해 필요한 권한을 적임자에게 위임 공개 / 공유 - Shared Context 결론 뿐만 아니라 의견 개진과 토론의 내용까지도 모두 공유 수평커뮤니케이션 - 최선의 의사결정 해당 엄무의 적임자라면 누구나 의사결정 과정에 참여 문화의 바탕 신뢰 내 동료가 하는 이야기는 사용자에게 더 좋은, 그리고 카카오에 더 좋은 얘기일 것이라는 믿음 충돌 불편함을 감수하고 솔직하게 의견을 나누는 행동을 의미하며, 이성적이고 객관적 근거를 갖춘 대립의 과정 헌신 결정된 사항은 '우리의 결정'으로 ..
실제 프로그램 알고리즘 회사에서 직원 임금을 계산하는 프록램을 개발한다고 가정하자. 해결할 문제 회사에서 매주 임금 총액을 계산하는 대화식 프로그램이 필요 프로그램이 수행되면 사원번호, 시간당 임금률, 일한 시간수를 입력 입력된 정보는 파일에 저장 총 임금액이 출력 일한 시간이 40시간이 넘으면, 넘은 시간은 임금률을 1.5배로 한다. 문제 해결을 위해 논의한 결과 각 직원의 데이터는 사원번호(empNum), 시간당 임금률(payRate), 일한 시간 수(hours)로 구성 그 외에 총임금(total), 개인별 총 수입(wages)이 필요 임금률은 시간 수 X 시간당 임금률, 40시간 이상은 1.5배 결과를 저장하는 파일은 payFile이라고 한다. 파일에 출력할 내용은 사원번호, 임금률, 일한시간, 개..
Querydsl이란? Querydsl 정적 타입을 이용해서 SQL과 같은 쿼리를 생성할 수 있도록 해 주는 프레임워크 문자열로 작성하거나 XML 파일에 쿼리를 작성하는 대신, Querydsl이 제공하는 플루언트(Fluent) API를 이용해서 쿼리를 생성할 수 있다. 단순 문자열과 비교해서 Fluent API를 사용할 때의 장점은 다음과 같다. Fluent API의 장점 IDE의 코드 자동 완성 기능 사용 문법적으로 잘못된 쿼리를 허용하지 않음 도메인 타입과 프로퍼티를 안전하게 참조할 수 있음 도메인 타입의 리팩토링을 더 잘 할 수 있음 Repository 구현 Querydsl을 사용하는 Repository를 구현할 때 JpaRepository와 함께 상속 해 하나의 Repository에서 JPA 와 Q..