본문 바로가기

Development

배열 출력, 복제, List 또는 Set에서 변경 배열값 출력 int[] a = {1, 2, 3}; System.out.println( Arrays.toString(a) ); java.lang의 toString 메소드가 아닌 java 유틸리티 함수인 Arrays를 사용한다. 배열 복제 int[] a = {1, 2, 3}; int[] b = a.clone(); 반복문을 이용하지 않고 배열을 그대로 복제한다. List 또는 Set을 Array로 변경(Object type만 가능) String[] array = list.toArray(new String[5]); list의 길이가 5 이하라면 길이 5짜리 배열을 만든다. List list = new ArrayList(); list.add("A"); list.add("B"); list.add("C"); Stri.. 더보기
의존성 주입(DI) 방법 정리 의존성 주입(Dependency Injection, DI)은 클라이언트가 의존할 대상을 외부에서 지정해 주는 것을 말한다. 이를 통해 클라이언트의 코드 변경 없이 다형성을 구현할 수 있다. 의존성을 주입하기 위해서는 먼저 용도에 따라 클래스에 @Controller, @Service, @Repository, @Component, @Configuration과 같은 Bean을 등록하기 위한 annotation을 부여해야 한다. IoC(DI) Conatainer는 해당 annotation이 부여된 객체들을 관리하며 클라이언트 대신 생성하고, @Autowired가 명시된 클라이언트의 field, constructor, method에 주입한다. @Repository public class MenuRepository.. 더보기
HTML/CSS 기초 문법 정리 HTML(HyperText Markup Language): markup language 태그 사용 빈도 self closing tags(태그에 contents 포함) 줄 바꿈(line break) 구분선(horizontal rule) 이미지 추가 입력창 라벨 이름 id: 글자를 눌러도 선택할 수 있게 해 줌 라벨 이름 선택창 라벨 이름 라벨 이름 체크박스 라벨 이름 라벨 이름 not self closing tags HTML문서 구조 페이지 작성 페이지 내용 제목 내용 내용 볼드 처리 내용 내용 글자 기울이기 내용 내용 큰 계층 나누기(section) 내용 계층 나누기(division) 내용 단락(paragraph) 내용 구조 나누기(inline, 정보 길이만큼만 가로 공간 차지) 내용 리스트 (unord.. 더보기
REST API의 URI 설계 기본 규칙 일반 규칙 1. URI의 마지막에는 /를 포함하지 않는다. ex) http://localhost:8080/items (O) http://localhost:8080/items/ (X) 2. _ 대신 -를 사용한다. ex) http://localhost:8080/company-name (O) http://localhost:8080/company_name (X) 3. 행위가 아닌 목적(리소스)을 지칭해야 한다. 리소스를 URI에 mapping하여 식별한다. 행위는 HTTP method를 통해 표현(representations)한다. 단, HTML FORM을 통한 컨트롤 URI를 사용할 때는 예외로 한다. ex) http://localhost:8080/members/8 (O) ex) http://localhos.. 더보기
REST API 특징 정리(https://restfulapi.net 참고) API(Application Programming Interface)는 소프트웨어 간 데이터를 전송해 주는 인터페이스로서, 서버의 구조와 프로세스에 대한 이해가 없는 클라이언트 사용자도 서버를 이용할 수 있도록 중개 역할을 해 준다. API는 관심사를 분류하는 리소스와 행위를 담당하는 HTTP method를 모두 포함하고 있다. REST(REpresentational State Transfer) API는 REST 구조를 따르는 인터페이스로 화면의 출력구조를 포함하지 않고, 화면을 구현하는 데 사용될 데이터만 전달하는 API를 뜻한다. 이하의 내용은 https://restfulapi.net/ 의 내용을 참고(사실상 사용)하여 작성했다. 해석 과정에서 의역이 많이 들어갔기 때문에 원문과 많이 달라질 수 있다.. 더보기
spring framework에서 사용하는 주요 annotation 정리 annotation은 외부 소프트웨어에 처리 내용을 전달하는 방법이다. 기본적인 annotation으로는 다음과 같은 것들이 있다(대부분 Lombok 필요). @SpringBootApplication spring boot 프로젝트를 사용할 때 spring boot 애플리케이션의 실행 클래스임을 지정하는 annotation이다. 실행 클래스이므로 main method가 필요하다. @Data class에 부여해, 모든 field에 대해 Getter와 Setter 메소드를 자동 생성해 준다. Getter와 Setter 외에도 여러 가지를 자동으로 생성하기 때문에, 도메인 등 핵심이 되는 객체에는 사용하기 적합하지 않다. @Getter class에 부여해, 모든 field에 대해 Getter 메소드를 자동 생성.. 더보기
HTTP method의 개념과 종류 정리 개념 HTTP(HyperText Transfer Protocol) method는 요청과 응답 과정에서 resource(자원)를 전달해 주는 URI와 함께 행위를 전달하는 역할을 한다. 클라이언트 / 서버, 서버 / 서버 간 전송에서 이용한다. HTTP 메시지를 통해 HTML파일, 텍스트파일, 영상파일 등 대부분 형태의 데이터를 전송 가능하다. HTTP 메소드는 @RequestMapping, @메소드명Mapping 등을 통해 handler method와 URL 주소를 매핑한다. 클라이언트가 특정 URL을 입력하면 HTTP 메소드를 통해 해당 URL에 매핑된 handler method가 호출되어 요청을 전달하고, 응답을 되돌려 줄 view의 이름을 지정한다. 응답을 view에서 html파일 등의 방식으로 시.. 더보기
(MySQL) SQL 기초 문법 정리 Schema 생성 CREATE DATABASE db명; ex) CREATE DATABASE market_db; 삭제 DROP DATABASE IF EXISTS db명; ex) DROP DATABASE IF EXISTS market_db; 조회 SHOW DATABASES; 사용 USE db명; ex) USE market_db; Table column 타입 정수형 TINYINT, SMALLINT, INT, BIGINT 실수형 FLOAT, DOUBLE 문자형 CHAR, VARCHAR 날짜형 DATE(날짜), TIME(시간), DATETIME(날짜와 시간) 대량 데이터 TEXT, LONGTEXT, BLOB, LONGBLOB 생성 CREATE TABLE 테이블명 ( column명 타입(글자 수 제한) NULL 허.. 더보기