백엔드 70

TIL 정리_53(TDD)

TDD란? Test Driven Development의 약자로 테스트 주도 개발이라고 한다 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현한다 짧은 개발 주기의 반복에 의존하는 개발 프로세스이며, 프로토 타입을 완성하는 애자일 방법론 중 하나인 Test-First 개념에 기반을 두었다 TDD 개발주기 단위 테스트 : 말 그대로 한 단위(일반적으로 class)만을 테스트 하는 것이다. Write Failing Test 단계 : 실패하는 테스트 코드를 먼저 작성한다 Make Test Pass 단계 : 테스트 코드를 성공시키기 위한 실제 코드를 작성한다 Refactor 단계 : 중복 코드 제거, 일반화 등의 리팩토링을 수행한다 중요한 것은 실패하는 테스트 코드를 작성할..

백엔드 2022.04.09

TIL 정리_52(OOP)

OOP(Object Oriented Programming) 객체지향 프로그래밍 이전의 프로그래밍 패러다임은 중심이 컴퓨터에 있지만, 객체지향 프로그래밍은 현실세계를 프로그래밍으로 옮긴 인간 중심적 프로그래밍 방식이다 특징 캡슐화 : 함수와 변수를 묶어 객체를 만들고 객체과 객체끼리 상호통신이 가능하도록 하며, 캡슐 속 객체는 외부에서 참조할 수 없도록 하는 은닉화라는 특징을 갖는다 상속성 : 부모클래스의 멤버를 자손클래스가 상속받는 것으로 코드의 재사용성을 의미한다 다형성 : 하나의 객체가 다양한 형태를 갖는다. 부모 클래스의 참조변수로 자손 클래스를 다룬다. 추상화 : 객체의 공통적인 기능이나 속성을 묶어 명시적인 이름을 부여하는 것으로 필요한 것은 사용하고 불필요한 것은 제거한다. 객체지향 프로그래밍..

백엔드 2022.04.08

TIL 정리_44

생활코딩 Oracle 강의를 듣고 정리한 내용입니다 PRIMARY KEY 식별자가 되기 위해서는 중복되면 안된다 ->id값이 같을 경우 검색이 어렵기 때문이다 가급적이면 처음부터 추가하는게 좋다 (토픽) 테이블 삭제 DROP TABLE topic; 실제로는 WHERE을 지정해서 삭제해야한다 CONSTRAINT 제약조건 CONSTRAINT PK_TOPIC PRIMARY KEY(id) 제약조건 : 프라이머리 키 이름 어디에 제약을 걸 것인가? CREATE TABLE topic ( 2 id NUMBER NOT NULL, 3 title VARCHAR2(30) NOT NULL, 4 description VARCHAR2(4000), 5 created DATE NOT NULL, 6 CONSTRAINT PK_TOPIC..

백엔드/Database 2022.03.31

TIL 정리_43(Oracle)

생활코딩 Oracle 강의를 듣고 정리한 글 입니다 https://opentutorials.org/course/3885 Oracle 오라클로 실제 업무를 할때는 신중하게 구매해야한다 (개인 비상업 제외) Edition Express(기능이 제한된 무료버전/수업에서 사용) Personal Standard Enterprise 밑으로 갈수록 가격과 기능이 높아진다 License 각각의 에디션을 어떤 기준으로 구매할 것인가? Named User Plus 데이터베이스를 사용하는 컴퓨터의 개수에 따라 가격이 달라진다 Processor 컴퓨터 cpu 성능에 따라 가격이 달라진다 Oracle expression edition 18c 강의에서 사용하는 버전 ->공짜, 다른 오라클과 연동 가능 데이터베이스 접속하기 터미널..

백엔드/Database 2022.03.30

TIL 정리_35

생활코딩 - SQL 강의 이어서 정리 CRUD UPDATE : 테이블 수정할 때 사용한다 UPDATE topic(테이블 이름) SET description='Oracle is ...', title='Oracle' WHERE id=2; WHERE id=2; ->수정할 아이디 지정 DELETE : 테이블을 삭제할 때 사용한다 DELETE FROM (테이블이름) WHERE id=숫자; DELETE FROM topic WHERE id = 5; *****WHERE문으로 지정하는 것을 잊지말것***** 관계형 데이터베이스가 아닌경우 데이터가 중복되는 것이 천만개일 때 (용량을 많이 차지할 때) 같은 데이터임을 확신하기 어렵다 관계형 데이터베이스의 장점 큰 규모의 데이터를 테이블에 담고, 테이블간의 관계를 통해 여러..

백엔드/Database 2022.03.22

TIL 정리_34(MySql)

https://www.youtube.com/playlist?list=PLuHgQVnccGMCgrP_9HL3dAcvdt8qOZxjW DATABASE2 - MySQL www.youtube.com 위의 생활코딩 강의를 듣고 정리한 내용입니다 파일과 데이터베이스 파일은 배우기 쉬우며, 운영 체제마다 파일 기능을 제공하기 대문에 어디에서나 사용할 수 있다 이메일이나 메신저를 이용하여 간편하게 전송이 가능하다 단점은 성능, 보안, 편의성에 한계를 가지고 있다 파일이 가진 한계를 극복하기 위해서 고안된 전문화된 소프트웨어가 바로 데이터베이스이다 데이터베이스 : 정보 기술의 심장이자 데이터를 안전하고 빠르게 저장하고 효율적으로 조회가 가능하며 데이터 활용이 가능하도록 하는 서버이다 다양한 데이터베이스 제품 : MySQ..

백엔드/Database 2022.03.21

[실습일지] 힌트 받는 기능을 추가해보자

Scanner입력과 반복문을 활용하여 단어맞추기 예제에 힌트기능을 추가해보려 한다 기능을 추가할 예제는 자바의 정석 예제를 이용하였다 일단 제일먼저 힌트를 입력받는 것을 구현해보았다 이 코드의 단점은 hint가 아닌 다른걸 적어도 같은 대답이 출력된다는 것이었다 어떻게 하면 입력한 값을 제한할 수 있을까? if문을 사용해서 고치기 -> if문 예제를 참고하며 정수로 입력받는것으로 노선변경 문자열을 받고싶었는데 정수로 방향을 바꿨으니 문자열->정수 변환 코드를 없애고 아예 정수형으로 반환하는 코드 한 줄을 넣었다 퀴즈를 종료하는 코드도 추가했다 [실습 중 의문점] 문자열(String)의 값을 입력받는건 어떻게 해야할까? !!해결 -> String은 기본형이 아닌 객체이기 때문에 비교연산자가 아닌 클래스를 ..

백엔드/Java 2022.03.21

TIL 정리_33

네트워킹 두 대 이상의 컴퓨터를 케이블로 연결하여 네트워크를 구성하는 것이다 java.net패키지를 사용하면 네트워크 어플리케이션의 데이터 통신부분을 쉽게 작성할 수 있다 클라이언트/서버(client/server) 서버 : 서비스를 제공하는 컴퓨터(service provider) 클라이언트 : 서비스를 사용하는 컴퓨터(service user) 서버는 다수의 클라이언트에게 서비스를 제공하기 때문에 하드웨어의 사양에 관계없이 서비스를 제공하는 소프트웨어가 실행되는 컴퓨터를 서버라 한다 서비스는 서버가 클라이언트로부터 요청받은 작업을 처리하여 그 결과를 제공하는 것을 뜻한다 서버가 제공하는 서비스의 종류에 따라 파일서버, 메일서버, 어플리케이션 서버 등이 있다 서버에 접속하는 클라이언트 수에 따라 하나의 서버..

TIL 정리_32

File 파일은 기본적이면서도 가장 많이 사용되는 입출력 대상이기 때문에 중요하다 자바에서는 File 클래스를 통해서 파일과 디렉토리를 다룰 수 있도록 하고 있다 -> File 인스턴스는 파일일 수도 있고 디렉토리일 수도 있다 File의 생성자와 경로에 관련된 메서드 생성자/메서드 설명 File(String fileName) 주어진 문자열을 이름으로 갖는 파일을 위한 File 인스턴스를 생성한다. 파일뿐만 아니라 디렉토리도 같은 방법으로 다룬다 fileName은 주로 경로를 포함해서 지정해주지만, 파일 이름만 사용해도 되는데, 이 경우 프로그램이 실행되는 위치가 경로(path)로 간주된다. File(String pathName, String fileName) File(File pathName, strin..

TIL 정리_31

문자기반 스트림 Reader&Writer byte 배열대신 char 배열을 사용한다 그 외에는 InputStream/Outpurstream 메서드와 같다 문자기반 스트림이라는건 단순히 2 byte로 스트림을 처리하는 것만이 아니다 문자데이터를 다루는데 필요한 또 하나의 정보는 인코딩이다 Reader/Writer와 자손들은 여러종류의 인코딩과 자바에서 사용하는 유니코드(UTF-16)간의 변환을 자동적으로 처리해준다 Reader : 특정 인코딩 -> 유니코드로 변환 Writer : 유니코드 -> 특정 인코딩 변환 FileReader FileWriter 파일로부터 텍스트 데이터를 읽고 파일에 쓰는데 사용된다 //FileInputStream을 사용하면 한글을 사용할 경우 깨진다 PipedReader PipedW..