All


문자와 문자열 문자 char 프리미티브(primitive)형 유니코드(Unicode 4.0) 표준에 기반 2Byte = 2^16 = 65,536개의 문자 표현 가능 본질적으로는 숫자 assertEquals('\u0041', 'A'); => 'A'를 '\u'와 16진수 '0041'(10진수로 65)로 표현 assertEquals('\101', 'A'); => 'A'를 '\'와 8진수로 표현 특수 문자 역슬래시(\)뒤에 문자를 넣은 이스케이프 시퀀스(escape sequence)로 특수 문자 표현 '\r' : 캐리지 리턴 (Carriage return) '\n..


CourseSession 강의의 기본 과목 정보와 수강정보를 관리하기 위해 CourseSession 클래스를 정의할 것이다. 단과대학, 수강번호, 학점 등의 기본적인 과목 정보는 일반적으로 학기마다 같다. 강의는 과목의 한가지 부분이며 다른 여러 정보와 강의 날짜와 강의하는 선생님의 정보, 강의에 수강신청한 학생의 목록을 가진다. CourseSession 클래스를 만들기 전에 테스트 케이스를 먼저 작성한다. public class CourseSessionTest extends TestCase { public void testCreate() { CourseSession session = new CourseSession("ENGL", "101"); assertEquals("ENGL", session.getD..


테스트하기 테스트 위주 개발 작성하는 모든 코드에 대하여 테스트를 만드는 것, 또한 작성 이전에 먼저 테스트를 작성하는 것이다. 이러한 테스트는 해야하는 작업을 명확히 하기 위한 도구로 사용된다. 각 클래스는 대응되는 테스트 클래스가 있다. 위 그림에서 StudentTest 는 결과 클래스 Student를 위한 테스트 클래스이다. 따라서 StudentTest는 Student 클래스 형식의 객체를 생성하고 생성한 객체로 메시지를 보내서 기대되는 동작을 수행하는지 확인한다. 위 UML의 화살표를 보면 알 수 있듯이 StudentTest 는 Student 에 종속적이다. 반대로 Student 는 StudentTest 에 종속적이지 않다. 따라서 작성하는 결과 클래스는 그 클래스를 위해 작성한 테스트에 영향을 ..

문제 조규현과 백승환은 터렛에 근무하는 직원이다. 하지만 워낙 존재감이 없어서 인구수는 차지하지 않는다. 다음은 조규현과 백승환의 사진이다. 이석원은 조규현과 백승환에게 상대편 마린(류재명)의 위치를 계산하라는 명령을 내렸다. 조규현과 백승환은 각각 자신의 터렛 위치에서 현재 적까지의 거리를 계산했다. 조규현의 좌표 (x1, y1)와 백승환의 좌표 (x2, y2)가 주어지고, 조규현이 계산한 류재명과의 거리 r1과 백승환이 계산한 류재명과의 거리 r2가 주어졌을 때, 류재명이 있을 수 있는 좌표의 수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 다음과 같이 이루어져 있다. 한 줄에 x1, y1, r1, x2, y2, r2가 주어진다. x1, ..

Lombok이란? Lombok은 Getter, Setter, ToString과 같은 메서드들을 간편하게 사용할 수 있게해주는 어노테이션기반 JAVA의 라이브러리입니다. 물론 IDE를 사용해 Getter, Setter 등의 메서드들을 손쉽게 생성할 수 있지만 멤버변수가 증가하면 증가할 수 록 코드의 양이 많아지고 복잡해지게 됩니다. Lombok은 이러한 것을 어노테이션을 이용해 개발자가 실제 구현한 코드에는 보이지 않지만 컴파일이 될 때 해당 메서드들이 자동으로 생성이 되는 과정을 통해 돌아가게 됩니다. Lombok 사용하기 의존성 추가 Spring Boot를 사용할 시 프로젝트 생성할 때 추가해도 되지만 그렇지 않다면 아래의 의존성을 추가해주어야한다. compileOnly 'org.projectl..


이번 글은 JetBrain사의 IntelliJ에서 새로운 프로젝트를 생성하고 시작하는 방법 두 가지에 대하여 설명을 해보려고 합니다. 1. 웹 브라우저를 통해 프로젝트 생성하기 https://start.spring.io/에 접속하면 아래와 같은 사이트를 볼 수 있다. Project : 해당 프로젝트에서 사용할 Build Tool을 설정한다. Language : 해당 프로젝트에서 사용할 언어를 설정한다. Spring Boot : 해당 프로젝트에서 사용할 버전을 설정한다. Project Metadata : 프로젝트의 group, name 및 packaging, java version을 설정한다. Dependencies : 해당 프로젝트에서 사용할 디펜던시들을 검색하고 추가하여 손쉽게 디펜던시들을 설정한다. ..


서블릿이라는 단어를 많이 접하게 되었지만 어렴풋이 어떤 일을 하는지만 알고 정확한 정의에 대하여 알지 못하였었다... 또한 Servlet과 Servlet Container등 용어들도 많아 헷갈리기도 일수였던 것 같다.. 자바로 백엔드를 공부하는 나로써 한번 제대로 정리를 해봐야겠다는 생각이 들었고 이번 기회에 Servlet에 대해 다시 한 번 정리해 보는 시간을 가지려한다. 서블릿에 대하여 알아보기 전에… CGI란? CGI는 Common Gateway Interface의 약자로 웹서버와 외부 프로그램 사이에서 정보를 주고 받는 방법이나 규약들을 의미한다. 쉽게말해, 사용자의 요청에 의한 서버의 응답이라고 할 수 있다. 왜 CGI가 필요한가요? 초기 웹 서비스에서는 주로 웹사이트에 필요한 정보만을 원하는 ..

배포 환경 AWS EC2 Ubuntu 16.04.6 1. git 설치 여부 확인 $ git --version => git version정보가 잘 출력된다면 설치되어있는 것. git이 설치되어 있지 않다면 아래 명령어를 통해 git 설치 $ sudo apt-get install git 2. nvm 설치하기 $ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash 3. nvm 활성화하기 $ . ~/.nvm/nvm.sh 4. nvm에 node 설치하기 $ nvm install node 5. node 설치 확인 $ node -v => 설치된 node의 version정보가 잘 뜨면 설치 완료 [참고] nvm에서 node 버전..


이 글은 nginx, python이 모두 설치되어 있고 도메인을 가지고 있는 상태에서 따라하시면 됩니다. 테스트 환경 AWS EC2 (Ubuntu 16.04.6 LTS) nginx/1.10.3 Python 2.7.12 1. Certbot 설치하기 apt에 repository를 추가해줍니다. $ sudo add-apt-repository ppa:certbot/certbot apt를 업데이트 해줍니다. $ sudo apt-get update python-certbot-nginx 를 설치해줍니다. $ sudo apt-get install python-certbot-nginx 2. nginx 설정에 도메인을 설정하기 $ sudo vi etc/nginx/sites-available/default 설정파일을 에디터..