전체 글45 [Spring] 좋은 객체지향 프로그래밍이란? 객체지향 특징 추상화 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려 내는것 코드의 재사용성, 가독성, 일관된 방향성 캡슐화 객체의 속성과 행위를 하나로 묶고 실제 구현 내용일부를 외부에 감추어 은닉한다. 외부에서 잘못된 사용으로 객체가 손상되지 않기 위해 사용, 접근 제한자 사용 상속 객체들간의 관계를 구축. 기존 클래스의 속성과 동작을 사용하기 위함 다형성 (오버라이딩) 프로그램 언어의 각 요소들이 다양한 자료형에 속하는 것을 허용 자료형에 따라 여러 타입의 요소를 생성할 수 있음 객체지향 프로그래밍 객체들의 모임으로 파악하는것. 각 객체는 메시지를 주고 받고 데이터를 처리 프로그램을 유연하고 변경을 용이하게 만들어준다 -> 컴포넌트를 쉽고 유연하게 변경하면서 사용 (다형성).. 2021. 12. 12. [Spring] 스프링이란? 스프링 핵심기술: 스프링 DI 컨테이너, AOP, 이벤트, 기타 웹기술: 스프링 MVC, 스프링 WebFlux 데이터 접근 기술: 트랜재견, JDBC ORM 지원, XML 지원 기술통합: 캐시, 이메일, 원격접근, 스케쥴링 테스트: 스프링 기반 테스트 지원 언어: 코틀린, 그루비 스프링 부트 스프링을 편리하게 사용할 수 있도록 지원, 최근에는 기본으로 사용 단독으로 실행할 수 있는 스프링 애플리케이션을 쉽게 생성 Tomcat 같은 웹 서버를 내장해서 별도의 웹서버를 설치하지 않아도 됨 손쉬운 빌드 구성을 위한 starter 종속성 제공 스프링과 3rd parth(외부) 라이브러리 자동 구성 (버전을 맞춰줌) 메트릭, 상태확인, 외부 구성 같은 프로덕션 준비 기능 제공 관례에 의한 간결한 설정 핵심개념 자.. 2021. 12. 12. [SpringBoot] JPA 1. build.gradle에 라이브러리 추가 (implementation 'org.springframework.boot:spring-boot-starter-data-jpa') dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' // implementation 'org.springframework.boot:spring-boot-starter-jdbc' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' runti.. 2021. 12. 12. [SpringBoot] 스프링을 사용한 테스트 @SpringBootTest @Transactional class MemberServiceIntegrationTest { @Autowired MemberService memberService; @Autowired MemberRepository memberRepository; @Test void 회원가입() { // given Member member = new Member(); member.setName("hello"); // when Long saveId = memberService.join(member); //then Member findMember = memberService.findOne(saveId).get(); assertThat(member.getName()).isEqualTo(findMem.. 2021. 12. 11. [SpringBoot] 스프링 DB 접근 기술 1. H2 데이터베이스 설치(https://www.h2database.com/html/main.html) h2 데이터베이스 설치 후 설치 폴더 > bin > h2.bat를 실행하면 db를 조작할수있는 화면이 뜬다 Table을 생성하고 간단하게 데이터를 몇개 삽입 create table member ( id bigint generated by default as identity, name varchar(255), primary key(id) ) insert into member(name) values ('spring'); select * from member; 2. DataBase 세팅 resource/application.properties에 db 정보를 입력한다. spring.datasource.url.. 2021. 12. 11. [프로그래머스] 베스트 앨범 문제 설명 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번호를 순서대로 return 하도록 solution 함수를 완성하세요. 제한 사항 genres[i]는 고유번호가 i인 노래의 장르입니다. plays[i]는 고유번호가 i인 노래가 재생된 횟수입.. 2021. 12. 10. [프로그래머스] 위장 문제 설명 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 종류이름 얼굴 동그란 안경, 검정 선글라스 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다. 스파이가 가진 의상의 수는 1개 이상 30개 이하입니다. 같은 이름을 가진 의상은 존재하지 않습니다. clothe.. 2021. 12. 8. [프로그래머스] 전화번호 목록 문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 제한 사항 phone_book의 길이는 1 이상 1,000,000 이하입니다. 각 전화번호의 길이는 1 이상 20 이하입니다. 같은 전화번호가 중복해서 들어있지 않습니다. 입출력 예제pho.. 2021. 12. 8. Hash Hash란? Key / Value 시스템 데이터를 관리/유지하는 자료구조 리소스 해시함수의 규칙 (ex. /100)으로 분류 -> 인덱스 >> 일련의 과정을 "해싱"이라고 부른다. Hash 관련 용어 정리 해시테이블 : 데이터가 저장되는 장소이며 인덱스와 해시값으로 분류 인덱스(키) / 인덱스 컬럼 내에 있는 값은 버켓 해시값(밸류) / 해시값 컬럼 내에 있는 값은 엔트리 Hash의 특징 선형탐색(Array)은 O(n)의 시간 복잡도를 가지는 반면, Hash Table은 O(1)의 시간 복잡도를 가진다. 선형탐색과 같은 Array구조를 가지고 있는 Hash Table이 검색속도가 더 빠른 이유는 인덱스를 바로 찾아가기 때문인데 인덱스를.. 2021. 12. 7. 이전 1 2 3 4 5 다음