| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- 스프링부트
- 알고리즘
- MySQL
- SQL
- node.js
- java
- 쿼리
- 코드테스트
- 정리
- 스프링
- jsp
- web
- 자바
- 오라클
- 자바스크립트
- 미니정리
- 데이터베이스
- 서버
- oracle
- BACK-END
- 프로그래머스
- 프론트엔드
- jpa
- 프런트엔드
- JavaScript
- 백엔드
- spring
- Next.js
- 코드 테스트
- 디자인 패턴
- Today
- Total
목록분류 전체보기 (357)
참치코더의 꿈 메모장
1. 공통점 - 객체 생성 불가(new로 인스턴스화 불가)- 다형성 지원 -> 하위 클래스나 구현체를 통해 실제 동작을 정의- 추상 메서드를 정의해서 자식 클래스/구현체가 반드시 구현하도록 강제 가능 2. 차이점 추상 클래스 (abstract class) - 목적 : is-a 관계, 상속을 통한 확장 - 상속/구현 : 단일 상속만 가능 (extends) - 구성 요소 (1) 추상 메서드(2) 일반 메서드(구현 O)(3) 멤버 변수(상태 보유 가능)(4) 생성자 가짐 - 필드 : 인스턴스 변수 가질 수 있음- 생성자 : 가질 수 있음 (직접 객체 생성은 못하지만 자식 객체 생성 시 호출됨)- 다중 상속 : 불가 (하나의 클래스만 extends) 인터페이스 (interface) - 목적 : can-d..
- 많은 분들이 for문으로 풀어서 Stream으로 한번 풀어봤다. - numbers 배열에 있는 값들에 *2를 해 해당 값을 가지고 있는 배열을 반환하는 문제이다. - result 배열을 선언해 IntStream.range를 사용하여 0부터 number 수만큼 하나씩 꺼낼 수 있게 만든 후 .map을 사용해 1개씩 값을 i로 받으면서 해당 값에 2를 곱해주었다. 그리고 .toArray를 사용하여 해당 스트림을 배열로 만들어 반환한다면 결과값을 얻을 수 있다. ^^ https://school.programmers.co.kr/questions/90163 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr
- Enum은 일련의 명명된 상수들의 집합을 정의하는 것을 의미하며, 프로그래밍에서는 이러한 상수들을 사용하여 코드 내에서 미리 정의된 값들의 집합을 나타낸다. - 자바의 enum은 타입 안전성을 제공하고, 코드의 가독성을 높이며, 예상 가능한 값들의 집합을 표현하는 데 사용된다. - 열거형을 정의할 때는 class 대신에 enum을 사용한다.- 원하는 상수의 이름을 나열하면 된다.- 열거형도 클래스이다.- 열거형은 자동으로 java.lang.Enum을 상속 받는다.- 열거형은 switch문에 사용할 수 있는 장점도 있다. 열거형(Enum)의 장점 - 타입 안정성 향상 : 열거형은 사전에 정의된 상수들로만 구성되므로, 유효하지 않은 값이 입력될 가능성이 없다. - 간결성 및 일관성 : 열거형을 사..
전략패턴은 객체의 행위(알고리즘, 동작)을 캡슐화해서, 런타임에 행위를 바꿀 수 있도록 하는 디자인 패턴이다.-> 알고리즘 군을 정의하고, 각각을 독립적으로 캡슐화하여 교체 가능하게 만드는 전략 핵심 의도- if-else나 switch문으로 분기 처리하지 않고, 알고리즘을 별도로 분리해 둬서 갈아끼우기 쉽게 함 구조1. Stratege (전략 인터페이스) - 알고리즘이 수행해야 하는 공통 인터페이스 정의 2. ConcreteStrategy (구체적인 전략 클래스)- Strategy를 구현한 실제 알고리즘들 3. Context (문맥/환경 클래스)- Strategy를 사용하며, 어떤 Strategy를 사용할지는 런타임에 결정됨 장점- 코드의 유연성과 확장성이 좋아짐- OCP (개방-폐쇄 원칙) 준수 ..
- 카펫의 가로와 세로의 크기를 구하는 문제이다. - 전체의 길이는 brown과 yellow 타일의 합과 같고 전체의 길이는 w * h = total 이다. - 노란색 타일을 전부 감쌀려면 최소 3이상 높이의 타일이 필요하므로 3으로 시작하는 for문을 사용해서 total을 3이상의 값으로 나눈 나머지가 0이라면 width값을 알수 있다. - 여기서 노란색의 타일값을 구하려면 위 아래 감싸고 있는 가장 끝단은 무조건 갈색이므로, height에서 - 2 가로에서 가장 끝에 있는 타일은 갈색이므로 -2를 해주어서 곱한 값이 노란 타일의 넓이 값이 된다. - 이렇게 구한 경우에서 문제에서는 가로의 길이가 세로와 같거나 가로가 더 긴 조건을 찾으라고 했으므로 width와 height의 최댓값을 가로 wi..
- 밴 유저를 신고처리하고 한꺼번에 게시판 이용정지를 시키면서 정지 메일을 발송하는 프로그램을 만드는 문제이다. - 1. 첫번째로 Set 컬렉션을 사용해 동일한 사용자가 똑같은 사용자에게 신고를 여러번 했을때 count는 1번만 계산하므로 중복되는 값을 제거해주었다. - 2. 그다음 Map 컬렉션을 이용해 중복을 제거한 Set에서 신고당한 사람의 횟수를 count 해주었다. (reportCount.getOrDefault(reported, 0) + 1)을 한다면 해당 키가 map에 존재한다면 해당 값 반환 아니면 0반환 + 1) - 3. 그리고 k값 이상 횟수만큼 신고를 받으면 해당 아이디는 정지되므로 해당 정지되는 유저를 banned Set에 저장에 주었다. - 4. 그럼 최종 벤된 ..
스프링 웹 스코프 정리웹 스코프란?웹 스코프는 웹 환경에서만 동작한다.프로토타입과 달리 스프링이 종료 시점까지 관리하기 때문에 종료 메서드 호출이 가능하다.웹 스코프의 종류1. RequestHTTP 요청이 들어오고 나갈 때까지 유지되는 스코프.요청마다 별도의 빈 인스턴스가 생성된다.2. SessionHttpSession과 동일한 생명주기를 가진다.3. ApplicationServletContext와 동일한 생명주기를 가진다.4. WebSocket웹 소켓과 동일한 생명주기를 가진다.Request 스코프 예시@Component@Scope(value = "request")public class MyLogger { private String uuid; private String requestURL; ..
- number에 해당하는 숫자의 각각 약수를 받아 만약 약수 값이 limit 값보다 크면 해당 값을 power 값으로 바꾼후 전체 약수의 값을 구하는 문제이다. - 2~3번 시도했으나 런타임 초과로 문제를 틀렸는데 실행시간이 문제였다. 처음 stream 사용안하고 기본 for문으로 만들었는데 런타임 실패... stream으로 만들었는데도 실패를 하게되었다. 결국 문제는 알고리즘 자체 실행시간이 느려 런타임 오류가 난것이었다. 이 문제는 제곱근을 이용한 수학공식을 사용해야 하는 문제이다. - IntStream.rangeClosed(1, number)을 사용하면 1부터 number 까지의 수를 for문 처럼 받을 수 있다. 해당 하는 값을 map으로 조건을 준 후 안에서 for문을 돌려 해당하는 수를..