여러 데이터를 하나에? 배열 : 여러개의 값을 넣을 수 있는 변수 int[] lottoNumbers = new int[7]; 배열의 번호는 0 부터 시작 ArryIndexOutofBoundsException 배열의 인덱스에 잘 못 접근했을 때 발생하는 예외 배열의 기본값 기본 자료형 배열 기본 자료형 배열의 기본값은 각 자료형과 동일하다. byte, short, int, long : 0 float, double : 0.0 char : \u0000 (공백) boolean : false 참조 자료형 배열의 기본값 초기화 하지 않은 참조 자료형의 기본값은 null 이다. 참조 자료형 배열의 기본값도 null 이다. 배열의 출력 배열을 for문을 사용하지 않고 그 자체로 출력하면 재미있는 결과가 나온다. //S..
1장 프로그래밍이란 무엇인가? 반복적으로 수행되는 일들을 사람이 수동으로 하지 않고 무언가에 자동으로 수행되도록 만드는 것 작은 단위들이 모여서 사람이 풀기 어려운 일도 가능하게 한다. 자바의 가장 작은 단위 클래스(class) 자바는 클래스가 모여서 하나의 프로그램이 만들어 진다. 클래스는 상태(state)와 행동(behavior)을 가질 수 있다. 행동(behavior)은 자바에서 메소드(mathod)라고 부른다. 행동을 하기 위해서 여러 가지 상태(state)를 가질 수 있다. 2장 Hello God Of Java 자바 프로그램이 실행되는 과정 .java 파일 -> 컴파일러 -> .class 파일 -> JVM -> 기계어 -> 운영체제 main 메소드 public static void main(St..
문제 해설 전체 코드 class Solution { public int solution(String s) { int answer = s.length(); if (s.length() == 1) { return 1; } for (int i = 1; i result.length()) { answer = result.length(); } } return answer; } // 압축된 문자열 만들기 private String compression(int size, String s) { List subStrings = getSubString(size, s); String result = ""; String temp = subStrings.get(0); int count = 1; for (int i = 1; i < ..
예외? 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류. 예외가 발생하면 프로그램이 종료가 된다는 것은 에러와 동일하지만 예외는 예외처리(Exception Handling)를 통해 프로그램을 정상적으로 작동되게 만들어준다. Checked Exception Exception을 상속 Checked Exception 또는 Compile Time Exception이라고 함 컴파일 시점에 Exception에 대한 처리(try/catch)를 하지 않을 경우 컴파일 에러가 발생한다. public class CheckedException extends Exception { public CheckedException(String message) { super(message); } } Un..
인터페이스? 하나의 시스템을 구성하는 2개의 구성 요소(하드웨어, 소프트웨어) 또는 2개의 시스템이 상호 작용할 수 있도록 접속되는 경계(boundary), 이 경계에서 상호 접속하기 위한 하드웨어, 소프트웨어, 조건, 규약 등을 포괄적으로 가리키는 말 interface는 자바에서 한 단계 더 높은 추상화를 하기 위해 사용된다. interface는 구현 로직은 존재하지 않으며 메서드에 대한 입력(input), 출력(output)만 정의하고 있다. interface를 활용해 추상화를 하는 이유는 소프트웨어에 변경이 발생할 경우 소스 코드에 변경을 최소화함으로써 유지보수 비용을 줄이고, 변화에 빠르게 대응하기 위함이다. 추상화를 함으로써 미래의 변화에 빠르게 대응할 수 있지만 추상화를 하려면 추상화에 따른 ..
TDD 란? 테스트 케이스를 먼저 작성한 다음 테스트 케이스에 맞추어 실제 개발 단계로 이행하는 개발 방법론 TDD = TFD(Test First Development) + 리팩토링 TDD 원칙 원칙 1 - 실패하는 단위 테스트를 작성할 때까지 프로덕션 코드(production code)를 작성하지 않는다. 원칙 2 - 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다. 원칙 3 - 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. TDD에 대한 생각 1. 명확하지 않은 요구사항에 대해서 구체적으로 다가갈 수 있다. 아직 이해하지 못한 도메인이나 기획에서 테스트 코드를 먼저 작성한다면 더 쉽게 리펙토링에 다가갈 수 있다고 생각한다. 예상한 입력과 출력에 대해서 테스트..
이력서에 적힌 내용에 충실하게 질문을 하셨습니다. 아래에는 면접 중에 받았던 질문을 정리했습니다. 스스로 했던 답에 대해서는 잘 기억나지 않아서 찾아보고 다시 작성했습니다.(주관적인 부분이 많습니다.)깃 허브의 두 프로젝트에서 패키지 구조가 다른 점이 무엇인가?참고 : 계층별, 기능별 패키지 구성하기 도메인이 무엇일까?일반적인 요구사항, 전문 용어, 그리고 컴퓨터 프로그래밍 분야에서 문제를 풀기 위해 설계된 어떤 소프트웨어 프로그램에 대한 기능성을 정의하는 연구의 한 영역소프트웨어로 해결하고자 하는 문제 영역 (예) 광고회사의 광고와 관련된 지식 = 도메인출처 : 도메인 주도 설계 비동기 방식은 무엇이고 어떤 이점이 있을까?동기 : 요청과 결과가 동시에 일어난다. 장점 : 설계가 매우 간단하고 직관적 단..
Javascript API를 불러오기 지도 그리기 const mapContainer = document.getElementById('map'); // 지도를 표시할 div const mapOption = { center: new kakao.maps.LatLng(37.566826, 126.9786567), // 지도의 중심좌표 level: 3 // 지도의 확대 레벨 }; const map = new kakao.maps.Map(mapContainer, mapOption); 키워드 검색 const ps = new kakao.maps.services.Places(); ps.keywordSearch('keyword', (data, status, pagination) => { if (status === kakao...
자바에서 단위 테스트를 작성하면서 느낀 주관적인 경험과 여러 자료들을 참고했습니다. 단위 테스트란? 인터페이스, 클래스, 메서드 등의 테스트를 작성하고 그것의 실행과 검증을 자동화 한 테스트 Gradle testImplementation 'org.junit.jupiter:junit-jupiter:5.4.2' testImplementation 'org.assertj:assertj-core:3.11.1' 단위 테스트 예시 public class CalculatorTest { Calculator cal; @BeforeEach public void setUp() { cal = new Calculator(); } @Test public void 덧셈() { assertThat(cal.add(3, 4)).isEqu..