전체 글 93

상속(extends)

상속이란?우리는 상속이라는 단어는 어디 드라마에서나 재산 상속 문제로 싸우는 것 외엔 잘 접하지 않는다. 이것이 클래스에서도 가능하다.일단 기본구조부터 보자class A extends B {}외국에서는 흔히 'A가 B로부터 확장 되었다' 라고 한다.B클래스는 부모 클래스이고 A는 자식 클래스가 된다.자식 클래스는 부모 클래스의 기능을 온전히 쓸 수 있다.class B { void print(){ System.out.println("나는 부모"); }}psvm { A a = new A(); a.print(); // "나는 부모"}A 클래스에서 B 클래스의 메소드에 접근할 수 있다.물론 private라면 불가능하지만 public이나 protected일때 가능하다. 자식 클래스에서 부모 클래..

JAVA 2024.08.08

[프로그래머스] 구명보트 -JAVA

https://school.programmers.co.kr/learn/courses/30/lessons/42885 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 모든 인원 중 가장 무거운 사람과 가벼운 사람을 태워본다.limit를 넘는다면 가장 무거운 사람은 그 누구와도 같이 탈 수 없다.그러므로 가장 무거운 사람만 타야한다.그 다음 2 번 째로 무거운 사람과 가장 가벼운 사람을 태운다.limit 안쪽이라면 그대로 두명을 태우고 이 과정을 반복하면 된다. 배열을 오름차순 정렬하고 양방향으로 데이터를 만질 수 있는 deque를 사용하였다. import java..

데이터 모델링, 정규화

데이터 모델링이란? 데이터 모델링(Data Modeling)은 데이터 구조와 관계를 정의하고 문서화하는 프로세스입니다. 이는 데이터베이스 설계의 중요한 단계로, 정보 시스템이 데이터를 효과적으로 저장, 관리, 검색할 수 있도록 합니다. 데이터 모델링의 주요 목적은 데이터베이스를 구현하기 전에 데이터의 구조를 명확하게 이해하고 이를 기반으로 데이터베이스를 설계하는 것입니다.데이터 모델링은 여러 단계로 이루어지며, 각 단계마다 다루는 추상화 수준이 다릅니다:개념적 데이터 모델링 (Conceptual Data Modeling):비즈니스 요구사항을 반영하여 데이터의 개념적 구조를 정의합니다.주로 ERD(Entity-Relationship Diagram) 같은 도구를 사용하여 엔티티(개체)와 그들 간의 관계를 나..

데이터베이스 2024.08.06

스프링 어노테이션

1. 컨트롤러 레벨 어노테이션@Controller: 클래스가 컨트롤러임을 나타내고, 스프링 MVC에서 HTTP 요청을 처리하는 데 사용됩니다.@RestController: @Controller와 @ResponseBody의 조합으로, JSON/XML 형태로 데이터를 반환하는 RESTful 웹 서비스용 컨트롤러를 정의합니다.@RequestMapping: URL 요청을 특정 메서드와 매핑하는 데 사용됩니다.@GetMapping, @PostMapping, @PutMapping, @DeleteMapping: HTTP 메서드별로 URL 요청을 특정 메서드와 매핑하는 데 사용됩니다.@PathVariable: URL 경로의 변수 값을 메서드 매개변수로 받는 데 사용됩니다.@RequestParam: 쿼리 파라미터의 값을..

스프링 2024.08.01

[프로그래머스] 가장 많이 받은 선물 -JAVA

https://school.programmers.co.kr/learn/courses/30/lessons/258712 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 1레벨짜리 문제가 벌써 풀기 싫어진다.매번 프로그래머스에서 풀때마다 느끼지만 1~2레벨 구분은 별 의미도 없는것 같다..우선 처음 고려해야 할 것은 서로 주고받은 선물의 개수이다.두 번째는 선물지수이다. 이름을 키로 갖고 값을 선물 지수로 갖는 map,서로 선물을 주고받은 데이터를 저장하는 map 두개가 필요하다. 서로 주고받은 선물 개수가 같은 것과 둘다 주고받지 않은것은 같다고 볼 수 있다. i..

[프로그래머스] 혼자놀기의달인 -JAVA

https://school.programmers.co.kr/learn/courses/30/lessons/131130 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr한 숫자를 뽑으면 하나의 그룹이 생성된다.원리는 어떤 숫자를 뽑으면 마지막으로 그 숫자로 돌아오게 되어있다.카드 한개를 뽑고 그룹의 크기를 저장하고 다시 하나를 뽑아서 카드 덱이 다 뽕빨날때까지 시행한다.이미 뽑힌 숫자라면 다른 그룹에 속해있는 수이니 넘어간다.최종적으로 뽑힌 여러 그룹을 오름차순 정렬해서 2개를 곱해주면 될 것이다.import java.util.ArrayList;import java..

데이터베이스 이름 규칙

주요 구성 요소와 명사Table (테이블)데이터를 행(row)과 열(column)로 구성하여 저장하는 구조.예: users, products, ordersColumn (열)테이블 내의 데이터를 저장하는 필드.예: first_name, email, order_dateRow (행)테이블 내의 데이터의 각 개별 레코드.각 행은 테이블의 모든 열에 해당하는 값을 가집니다.예: 하나의 사용자 레코드, 하나의 주문 레코드Primary Key (기본 키)테이블에서 각 행을 고유하게 식별하는 열 또는 열들의 조합.예: id, user_idForeign Key (외래 키)다른 테이블의 기본 키를 참조하여 두 테이블 간의 관계를 나타내는 열.예: user_id (users 테이블의 id를 참조), product_id (p..

데이터베이스 2024.07.31

[프로그래머스] 삼각 달팽이 -JAVA

https://school.programmers.co.kr/learn/courses/30/lessons/68645 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr결국 배열의 인덱스만 잘 조절하면 쉽게 풀 수 있을 것이다. 다소 복잡해보이는 로직은 ide에서 디버깅을 찍어가며 놓치고 있는 부분이 있는지 확인해주면 좋다. import java.util.*;class Solution { public int[] solution(int n) { int[] answer = {}; List list = new ArrayList(); ..

스프링 동작 원리

머리속에 있는 스프링 동작 원리를 정리해보자 1. 클라이언트(http)에서 요청하면 디스패쳐 서블릿이 가로챈다.2. 디스패쳐가 핸들러 매핑으로 요청 URL을 분석하여 적절한 핸들러(컨트롤러)에 매핑한다.3. 핸들러가 실행되고 모델 데이터를 생성하고 논리적인 뷰 이름을 만든다.4. 디스패쳐는 뷰 리졸버로 논리적인 뷰를 실제 뷰로 생성한다.(html, jsp...)5. 뷰에 모델 데이터를 전달하여 실제 뷰 또는 다른 방식의 응답을 생성한다. 결국 디스패쳐 서블릿이 다 해준다.조금 더 깊숙히 공부해보자.

스프링 2024.07.26

Object

Object-type:  JS에서 사용하는 모든 non-primitive type Object-literal  :  일반적으로 Object 라고 말하는데 Object-type의 어머니 학생이름, 나이, 반, 학년을 데이터화 한다면 let name = '홍길동';let age = 15;let grade = 2;let cls = 5;으로 할 수 있다. const st1 = {name : '홍길동',age : 15,grade : 2,cls : 5};이것으 오브젝트 리터럴이다. 콘솔로 찍어서 확인해보자console.log(st1); console.log(st1.name); console.log(st1['name']);

JS 2024.07.25