/users
/posts
/slides
/apps
/books
mysetting
/users
/posts
/slides
/apps
/books
이예슬
백엔드 개발자@성신여자대학교
Joined on 2021년 05월 10일
Profile
Post
Like
3:24 5/23
seulog.netlify.app
3:24
seulog.netlify.app
Seulog💘
https://seulog.netlify.app/
무한삽질
저작도구: GatsbyJS
최종 피드 수집: 2025-01-06 12:17
전체 (99)
2y
[Javascript] Map <-> JSON
Map to JSON / JSON to Map
convert Map to JSON
const someMap = new Map();
someMap.set('key', 'value');
const jsonFromMap = Object
0
0
1
읽기모드
2y
[코어자바스크립트] 02.실행 컨텍스트
실행 컨텍스트란?
실행할 code에 제공할 환경 정보를 모아놓은 객체
-> 동적 언어로서의 성격 잘 파악할 수 있다.
Execution Context가 활성화 되는 시점
호이스팅: 선언된 변수를 끌어 올림
외부 환경 정보 구성
t
0
0
2
읽기모드
2y
JVM
JDK, JRE, JVM
JDK
Java Development Kit의 약자로, JRE와 자바 개발에 필요한 툴을 제공한다. 오라클은 Java11 부터 JDK만을 제공한다.
JRE
Java Runtime Environment의 약
0
0
0
읽기모드
3y
[클린코드] 클래스
Class
클래스는 작아야한다.
클래스는 책임이 적어야 한다.
클래스와 메서드 둘다 크기가 작아야하지만, 메서드는 물리적인 행 수가 적어야 한다면 클래스는 책임이 적어야한다.
클래스의 이름은 해당 클래스의 책임을 기술해야한다.
모
0
0
0
읽기모드
3y
SpringBoot 테스트를 위한 EmbeddedRedis 설정
SpringBoot 테스트를 위한 EmbeddedRedis 설정
1. EmbeddedRedisConfig 설정
@TestConfiguration
class EmbeddedRedisConfig(
@Value("\${spring.
0
0
4
읽기모드
3y
Observer Pattern
Observer Pattern
옵저버 패턴 은 한 객체(Subject)의 상태가 변할 때, 그 객체를 구독하는 다른 객체들에게 상태가 변화했음을 알린 뒤 자동으로 내용을 갱신하는 패턴이다.
일대다의 의존관걔를 가진다.
Publis
0
0
0
읽기모드
3y
Redis 개념 정리
Redis 정리 - (1)
redis를 사용해야 할 일이 곧 다가올 것 같은데.. 레디스는 막연히 성능상의 이점을 위하여 캐싱처리를 하는 NoSQL 정도로만 알고 제대로 사용해본적이 없어 정리해보고자 한다.
(이 글을 쓴 지는 좀
0
0
1
읽기모드
3y
[Node.js 교과서] - 7장 Sequelize
create
sql
insert into nodejs.users (name, age, married, comment) values ('lee', 27, 0, '안녕');
sequelize query
User.create({
0
0
2
읽기모드
3y
[Node.js 교과서] - 3장 노드 기능 정리
REPL
자바스크립트는 스크립트 언어이므로 미리 컴파일하지 않아도 즉석에서 코드를 실행할 수 있다.
REPL = Read(읽고) + Eval(해석하고) + Print(결과를 반환하고) + Loop (종료할 때 까지 반복)
JS 파
0
0
2
읽기모드
3y
[Node.js 교과서] - 2장 자바스크립트 정리
Event Driven
이벤트 기반이란 이벤트가 발생할 때 미리 지정해둔 작업을 수행하는 방식인데, 이 이벤트 기반은 노드의 특성 중 하나이다.
이벤트 기반 시스템에서는 특정 이벤트 가 발생할 때, 무엇을 할 지 미리 등록해두어야
0
0
1
읽기모드
3y
map과 flatMap?
map과 flatMap
map
map은 입력값(Collection) 을 람다 내부의 로직을 걸쳐, 사용자가 원하는대로 결과로 반환한다.
예를들어 학생 데이터 중, 시험 성적만 뽑고 싶은 경우를 생각해보자. Student Colle
0
0
0
읽기모드
3y
[Kotlin] Scope Function
Scope Function
정의
Kotlin은 객체의 컨텍스트 내에서 오직 코트 블록을 실행하는 여러 함수가 포함되어 있는데, 람다식에서 scope 함수를 호출하면 임시 범위(scope)가 만들어진다. 이 scope에서는 해당 객
0
0
0
읽기모드
3y
[Kotlin] 확장함수
확장 함수
정의
코틀린은 클래스에서 상속하거나, Decorator와 같은 디자인 패턴을 사용하지 않고도, 새로운 기능으로 클래스를 확장할 수 있는 기능을 제공한다.
코틀린의 핵심 목표 중 하나는, 기존 코드와 코틀린 코드를 자연스
0
0
2
읽기모드
3y
ktor 를 통해 mutlpart 파일 업로드 하기
ktor 를 통해 mutlpart 파일 업로드 하기
사실 진짜 별거 아닌데.. 공식 문서를 보고도 별 생각없이 내 맘대로 변형해서 말그대로 개 삽질을 했다.
아 사실 삽질한 이유가 좀 더 있는데.. 아직 코루틴에 대해 잘 알지는
0
0
98
읽기모드
3y
CDN이란
CDN이란?
CDN은 Content Delivery Network 의 약자인데, 지리적 제약 없이 전 세계 사용자에게 빠르고 안전하게 컨텐츠를 전송할 수 있는 기술이다.
많은 데이터를 지연없이 처리하기 위해서는 데이터를 분산해서
0
0
15
읽기모드
3y
도커 기본 명령어 - 1
인프런 - 초보를 위한 도커 안내서를 듣고 정리한 내용입니다
run - 컨테이너 실행
docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARGS..]
OPTION
Description
-
0
0
0
읽기모드
3y
도커란 무엇인가?
도커는 어떤 문제를 어떻게 해결했을까?
서버 관리란
서버환경과 개발환경이 계속해서 바뀔 수 있다. 서버를 관리하려면 여러 개발환경이 잘 돌아가게끔 서버를 관리해주어야 한다.
➡️ 굉장히 복잡!
서버관리 방식의 변화
전통적
한 땀
0
0
0
읽기모드
3y
[오브젝트] 2장 정리
소스코드 참고
클래스 구현
클래스를 구현하거나 사용할 때 가장 중요한 것은 클래스의 경계를 구분 짓는 것이다.
휼륭한 클래스를 설계하기 위한 핵심은 어떤 부분을 외부에 공개하고 어떤 부분을 감출지를 결정하는 것이다.
클래스의 내부
0
0
2
읽기모드
3y
@ControllerAdvice 와 @InitBinder를 이용하여 모든 Request의 String Trim 설정
@ControllerAdvice 와 @InitBinder를 이용하여 모든 Request의 String Trim 설정
@ControllerAdvice란?
@ControllerAdvice는 모든 컨트롤러들에 대하여 전역적으로 특정
0
0
0
읽기모드
3y
Jdbc를 통한 Bulk Insert
Jdbc를 통한 Bulk Insert
@Repository
@RequiredArgsConstructor
public class someJdbcRepository {
private final JdbcTemplate jdbcT
0
0
1
읽기모드
3y
RESTFul API 설계 가이드 정리
📌 설계 중심 규칙
URI는 정보의 자원을 표현해야 한다
자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE 등)으로 표현한다
URI 작성 규칙
👎
GET /users/show/1
👍
GET /
0
0
5
읽기모드
3y
RESTFul API 설계 가이드 정리
📌 설계 중심 규칙
URI는 정보의 자원을 표현해야 한다
자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE 등)으로 표현한다
URI 작성 규칙
👎
GET /users/show/1
👍
GET /
0
0
0
읽기모드
3y
Entity Listener
Entity Listener
정의
hibernate 공식 문서
Entity Life Cycle (Persist, Remove, Update, Load) 에 대한 이벤트 발생 시 call back 처리
메서드
Pre- vs Post
0
0
0
읽기모드
3y
[이펙티브 자바] 17. 변경 가능성을 최소화하라
변경 가능성을 최소화하라
불변 인스턴스에 간직된 정보는 고정되어 객체가 파괴되는 순간까지 절대 달라지지 않는다. 자바 기본 클래스에서 String, BigInteger, BigDemical이 이에 속한다.
불변 클래스는 가변 클
0
0
0
읽기모드
3y
[스터디] 자바 ORM 표준 JPA 프로그래밍 01
[스터디] 자바 ORM 표준 JPA 프로그래밍 01
SQL vs JPA 요약
비교
CRUD 용 SQL 작업
→ 반복작업, 비즈니스 로직 작업 < SQL 작성 시간
지루하고 비생산적임
객체 모델링과 관계형 데이터 베이스 사이의 차이
0
0
1
읽기모드
3y
Entity와 DTO 간 매핑에 대한 코드를 자동 생성하는 MapStruct
Entity와 DTO 간 매핑에 대한 코드를 자동 생성하는 MapStruct
Spring에서, Entity와 DTO 간 매핑을 자주하게 된다. 레이어 간 데이터를 주고받을 때 혹은 비즈니스 로직에서의 형변환 등이 그 경우이다.
이
0
0
0
읽기모드
3y
[토비의 스프링] 8장) 스프링이란 무엇인가? (1)
8장) 스프링이란 무엇인가? (1)
스프링은 단순히 IoC/DI 를 편하게 적용하도록 돕는 단계를 넘어서 엔터프라이즈 애플리케이션 개발의 전 영역에 걸쳐 다양한 종류의 기술에 관여한다. 이 말의 뜻과, 스프링이 무엇이고, 스프링
0
0
10
읽기모드
3y
[이펙티브 자바] 19. 클래스와 멤버의 접근 권한을 최소화하라
19. 클래스와 멤버의 접근 권한을 최소화하라
잘 설계된 컴포넌트란?
잘 설계된 컴포넌트는 클래스 내부 데이터와 내부 구현 정보를 외부 컴포넌트로부터 잘 숨겨둔 컴포넌트이다. 즉, 모든 내부 구현을 완벽히 숨겨, 구현과 API를
0
0
2
읽기모드
3y
QueryDSL (1) - 설정과 예제
QueryDSL (1)
Java의 표준 ORM인 JPA를 통해 개발자는 복잡한 설정이나 일일히 쿼리를 작성할 필요 없이 간단한 설정을 통하여 쿼리를 생성할 수 있다. 하지만 JpaRepsitory를 통해 복잡한 쿼리는 작성하기 까
0
0
1
읽기모드
3y
[이펙티브 자바] 02. 생성자에 매개변수가 많다면 빌더를 고려하라
02. 생성자에 매개변수가 많다면 빌더를 고려하라
정적 팩터리와 생성자는 선택적 매개변수가 많을 때 적절히 대응하기 어렵다.
점층적 생성자 패턴
보통은 점층적 생성자 패턴(telescoping constructor pattern
0
0
1
읽기모드
3y
[이펙티브 자바] 01. 생성자 대신 정적 패터리 메서드를 고려하라
01. 생성자 대신 정적 패터리 메서드를 고려하라
클라이언트가 클래스의 인스턴스를 얻는 전통적인 수단은 public 생성자다. 클래스는 생성자와 별도로 정적 팩터리 메서드(static factory method)를 제공할 수 있다
0
0
3
읽기모드
3y
[토비의 스프링] 스프링 IoC - (1)
[토비의 스프링 3.1] 스프링 IoC
스프링을 이루는 근간 중 하나인 IoC, 즉 제어의 역전에 대해서는 개념적으로는 알고 있어도, 사실 완벽하게 이해는 못했던 상태였다. 스프링 컨테이너가 이런 저런 것들을 위임받아 빈들을 관리
0
0
1
읽기모드
3y
[자바 ORM 표준 JPA 프로그래밍] Entity 매핑
[자바 ORM 표준 JPA 프로그래밍] Entity 매핑
@Entity
JPA를 통해 테이블과 매핑할 클래스는 @Entity를 필수로 붙여야한다.
주의사항
기본 생성자는 필수이다. (파라미터가 없는 public, protecte
0
0
1
읽기모드
3y
@ControllerAdvice를 통한 일관성있는 예외 처리
@ControllerAdvice
Controller에서 발생한 모든 예외를 @ControllerAdvice에서 처리할 수 있다. 일반적으로 try catch를 사용하여 예외를 처리했는데, try catch를 사용해야 하는 경우라면
0
0
6
읽기모드
3y
Custom Validation
Conditional Validation
객체의 속성 값에 따라 데이터 유효성 검사를 다르게 해야 하는 경우, 어떤 방법으로 유효성을 검증하여야 가장 효율적이고 코드 중복을 최소화하여 간단하게 할 수 있는 지를 고민하였다. 그러던
0
0
1
읽기모드
3y
AWS CodeDeploy
AWS CodeDeploy
CodeDeploy란?
aws의 ec2, 온프레미스 인스턴스, 서버리스 lambda 또는 ecs 서비스로 애플리케이션 배포를 자동화하는 배포 서비스이다. 즉 CD이다.
에이전트?
ec2에 설치하는 프로그
0
0
2
읽기모드
3y
Github action 정리
Github action을 통한 Spring boot 자동 deploy
# This workflow will build a package using Gradle and then publish it to GitHub packages
0
0
1
읽기모드
3y
CI/CD
CI / CD
현재의 배포 트렌드는 작은 기능 단위로 자주 코드를 통합 및 배포하는 CI(Continuous Integration) / CD(Continuous Deployment) 가 대세이다. 새로 개발한 기능, 버그를 수정한
0
0
1
읽기모드
3y
JWT
JWT
토큰 기반 인증
서버 기반 인증 시스템
기존의 인증 시스템은 서버 기반의 인증 방식이었는데, 서버 측에서 사용자의 정보를 기억하고 있어야 했다. 이를 위해 세션을 유지해야 했는데, 세션의 유지는 메모리, 디스크 또는 db
2
0
5
읽기모드
3y
자료구조 - 배열, 링크드리스트, 스택, 큐 정리
Data Structure
Array & Linked List
Array
논리적 저장 순서와 물리적 저장 순서가 일치
찾고자 하는 원소의 인덱스를 알면 시간복잡도 O(1)에 해당 원소에 접근가능하다.
즉 random access가
0
0
10
읽기모드
3y
Spring Boot에 FCM 적용하기
build.gradle 설정
implementation 'com.google.firebase:firebase-admin:6.8.1'
의존성을 추가해준다.
메시지를 보내는 형태는 fcm 공식문서에 작성된 json 형태에 맞춰 보내
0
0
0
읽기모드
3y
Spring REST Docs를 통한 API 문서 자동화
자바에서는 주로 API 명세를 위한 툴로 Swagger와 Spring REST Docs가 사용된다. Swagger의 장점은 API를 테스트할 수 있는 환경이 제공되며 Spring REST Docs에 비해 비교적 설정이 간편하다.
0
0
9
읽기모드
3y
Github Action을 통한 TIL README 문서 자동화
요즘 많은 개발자들이 TIL, 즉 Today I Learned 를 개인 github repo에 작성하곤 한다. 물론 나는 매일(..)은 아니더라도 꼭 기록하고 싶은 기술 등이 있다면 작성하곤 하는데, 문제는 README에 TIL
0
0
443
읽기모드
3y
테스트 시 Error creating bean with name amazonS3
테스트 시 Error creating bean with name ‘amazonS3’
우선적으로 체크해야할 부분
org.apache.httpcomponents dependency 버전 확인
httpclient와 httpcore는 버
0
0
40
읽기모드
3y
객체의 특정 필드 기준으로 List 정렬하는 방법
객체의 특정 필드 기준으로 List 정렬하는 방법
예를들어, Chat 리스트를 최근 메시지 순으로 정렬하는 경우를 생각해보자.
@Getter
public class ChatDto {
private String lastMes
0
0
0
읽기모드
3y
[MySQL] 외래키 무시하고 삭제하기
ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint fails
와 같은 에러가 발생한다.
이를 무시하고 삭제하고 싶은 경우,
set
0
0
0
읽기모드
3y
Spring Jpa Pagination 처리
페이징의 필요성
JPA에서는 Entity의 전체 목록을 findAll() 을 통해 불러올 수 있다. 예컨대 db 수가 적다면 List 형식으로 db의 전체 목록을 받아와도 성능에 큰 차이는 없겠지만, db의 수가 기하급수적으로 늘
0
0
0
읽기모드
3y
default method를 활용하여 JpaRepository 메서드 명 간소화하기
JpaRepository를 사용하여 메서드를 생성할 때, 이름이 너무 길어져서 사용하기에 가독성이 좋지 않은 경우가 있다. 이 경우, 인터페이스 내에 defaultMethod를 통해 짧은 이름을 지정해 값을 return 하게끔 m
0
0
4
읽기모드
3y
Lamda
람다식
자바는 객체를 기반으로 프로그램을 구현한다. 만약 어떤 기능이 필요하다면, 클래스를 먼저 만들어 기능을 구현한 메서드를 만든 뒤, 그 메서드를 호출해야한다. 즉, 클래스가 없으면 메서드를 사용할 수 없다. 함수형 프로그래밍
0
0
0
읽기모드
3y
Generic
제네릭
제네릭이란?
프로그램에서 변수를 선언할 때 모든 변수는 자료형이 존재한다. 마찬가지로 메서드에서 매개변수를 사용할 때도 자료형이 있다. 하지만 보통 하나의 자료형으로 구현되므로, 변수나 메서드의 자료형을 필요에 따라 여러
0
0
0
읽기모드
3y
findAll일 때 sort하기
JpaRepository의 findAll 사용 시 sort 하는 방법
List<Tour> tours = tourRepository.findAll(Sort.by(Sort.Direction.DESC, "id"));
0
0
0
읽기모드
3y
.gitignore 작동하지 않을 때
ignore를 설정했는데도 파일이 계속 보이는 경우가 있다. 이 경우 git의 캐시 문제이기 때문에, 캐시를 삭제한 뒤 다시 커밋하면 해결된다.
git rm -r --cached .
git add .
git commit -m "f
0
0
0
읽기모드
3y
인텔리제이에서 JPA Entity Diagram 보기
Persistence -> entityManager -> ER Diagram
출처 - https://jojoldu.tistory.com/517
0
0
14
읽기모드
3y
save the transient instance before flushing
오류 코드
object references an unsaved transient instance - save the transient instance before flushing
개체가 저장되지 않은 일시적인 인스턴스를 참조합니다
0
0
0
읽기모드
3y
MultipleBagFetchException
오류 코드
org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bag
한 엔티티에서 두 개 이상의 @OneToMany인 Bag 두
0
0
1
읽기모드
3y
어노테이션
커스텀 어노테이션
정의
public @interface CurrentUser {
}
기존에 interface 를 정의할 때는 interface interfaceName {} 과 같은 형태로 정의했지만, 커스텀 어노테이션을 정의하기
0
0
0
읽기모드
3y
UserDetailsService
출처
UserDetails
user에 대한 정보를 제공한다. UserDetails에 대한 구현은 보안 목적으로 Spring Security에서 직접적으로 사용되지는 않는다. 단순히 Authentication 객체로 캡슐화 되는 사
0
0
0
읽기모드
3y
로그인 상태 유지
RemeberMe
Spring Security의 RememberMe를 이용하여 로그인 상태를 유지할 수 있다.
로그인 시, jsessionid를 통해 웹브라우저와 서버가 연결된다. 스프링부트의 기본 세션 타임은 30분인데, 로그인
0
0
0
읽기모드
3y
Enum
enum 정의하는 방법
enum이 제공하는 메소드 (values()와 valueOf())
java.lang.Enum
EnumSet
Enum
Enum이란?
Enum Type은 변수가 미리 정의 된 상수 집합이 되도록하는 데이터 유형
0
0
2
읽기모드
3y
Infinite Recursion in JPA
오류 코드
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.ht
0
0
0
읽기모드
3y
Thread
Thread
정의
왜 사용할까?
상태
NEW
RUNNABLE
WAITING
TIMED_WAITING
BLOCK
TERMINATED
스케줄링
우선순위
라운드 로빈
Thread 클래스와 Runnable 인터페이스
yield()
sle
0
0
0
읽기모드
3y
예외 처리
예외
예외의 정의
예외는 프로그램 실행 중에 발생하는 이벤트인데, 프로그램의 명령의 정상적인 흐름을 방해한다.
메서드 내에서 오류가 발생하면, 메서드는 객체를 만들어 런타임 시스템에 전달한다.
예외 객체라고 하는 객체는, 에러가
0
0
0
읽기모드
3y
트랜잭션
Transaction
트랜잭션이란?
트랜잭션이란, 데이터베이스의 상태를 바꾸는 기능을 수행하기 위한 작업의 단위 이다. 모든 명령어의 성공 또는 실패를 한 번에 처리하는데, 이 기능이 정상적으로 동작하려면 성공 또는 실패가 한 번
0
0
0
읽기모드
3y
[JPA] Entity의 Life cycle
엔티티 매니저 팩토리와 엔티티 매니저
엔티티 매니저
엔티티의 CRUD 등 엔티티와 관련된 모든 일을 처리
엔티티 매니저는 여러 스레드가 동시에 접근하면 동시성 문제가 발생하므로 스레드 간에 절대 공유하면 안됨
엔티티 매니저 팩토리
0
0
0
읽기모드
3y
회원가입 컨트롤러 만들기
GET "/sign-up" 요청을 받아서 account/sign-up.html을 보여준다.
회원가입 폼에서 입력받을 수 있는 정보를 닉네임, 이메일, 패스워드 폼 객체로 제공한다.
@Controller
public class Ac
0
0
1
읽기모드
3y
[백준] Q1912
문제
n개의 정수로 이루어진 임의의 수열이 주어진다. 우리는 이 중 연속된 몇 개의 수를 선택해서 구할 수 있는 합 중 가장 큰 합을 구하려고 한다. 단, 수는 한 개 이상 선택해야 한다.
예를 들어서 10, -4, 3, 1, 5
0
0
1
읽기모드
3y
[백준] Q11726
문제
2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오.
아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.
입력
첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000
0
0
0
읽기모드
3y
제약 검증 기능 사용
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.Email;
import javax.v
0
0
0
읽기모드
3y
[SpringBoot] 엔티티 만들기
도메인
https://www.petrikainulainen.net/software-development/design/understanding-spring-web-application-architecture-the-classic-w
0
0
0
읽기모드
3y
[벡준] Q1149
문제
RGB거리에는 집이 N개 있다. 거리는 선분으로 나타낼 수 있고, 1번 집부터 N번 집이 순서대로 있다.
집은 빨강, 초록, 파랑 중 하나의 색으로 칠해야 한다. 각각의 집을 빨강, 초록, 파랑으로 칠하는 비용이 주어졌을 때
0
0
0
읽기모드
3y
[백준] Q2579
문제
계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. <그림 1>과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점수를 얻게 된다.
예를 들어 <그림
0
0
0
읽기모드
3y
[백준] Q1463
문제
정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다.
X가 3으로 나누어 떨어지면, 3으로 나눈다.
X가 2로 나누어 떨어지면, 2로 나눈다.
1을 뺀다.
정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사
0
0
0
읽기모드
3y
인터페이스
인터페이스
인터페이스는 클래스와 비슷한 레퍼런스 타입인데, abstract class 보다 추상화 정도가 높기 때문에 abstract class와 달리, 몸통을 갖춘 일반 메서드와 멤버변수를 가질 수 없다.
따라서 기능을 명시적
0
0
0
읽기모드
4y
[벡준] Q1697
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n, k;
cin >> n >> k;
int dist[100002];
fill(dist,
0
0
0
읽기모드
4y
[백준]Q4179
문제
지훈이는 미로에서 일을 한다. 지훈이를 미로에서 탈출하도록 도와주자!
미로에서의 지훈이의 위치와 불이 붙은 위치를 감안해서 지훈이가 불에 타기전에 탈출할 수 있는지의 여부, 그리고 얼마나 빨리 탈출할 수 있는지를 결정해야한다
0
0
0
읽기모드
4y
[백준] Q7576
문제
철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자 모양 상자의 칸에 하나씩 넣어서 창고에 보관한다.
창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은
0
0
0
읽기모드
4y
[백준]Q2178
문제
N×M크기의 배열로 표현되는 미로가 있다.
미로에서 1은 이동할 수 있는 칸을 나타내고, 0은 이동할 수 없는 칸을 나타낸다. 이러한 미로가 주어졌을 때, (1, 1)에서 출발하여 (N, M)의 위치로 이동할 때 지나야 하는
0
0
0
읽기모드
4y
VSCode에서 Snippet(자동완성) 이용하기
Snippet은 간단하게 말하면 자동완성같은 기능이다. prefix를 지정하고 코드 내에서 입력하면, 지정한 코드들을 자동으로 완성시킨다.
Preferences에서 User Snippets를 클릭한다.
cpp.json을 클릭해서
0
0
0
읽기모드
4y
[백준]Q1926
문제
첫째 줄에 도화지의 세로 크기 n(1 ≤ n ≤ 500)과 가로 크기 m(1 ≤ m ≤ 500)이 차례로 주어진다. 두 번째 줄부터 n+1 줄 까지 그림의 정보가 주어진다. (단 그림의 정보는 0과 1이 공백을 두고 주어지며
0
0
0
읽기모드
4y
[C++] pair
#include<bits/stdc++.h>
using namespace std;
// 선언
pair<int, int> p;
pair<int, int> p2 (1, 1);
// 생성
p = make_pair(1, 1);
p = {1
0
0
0
읽기모드
4y
AOP - (1)
AOP - (1)
정의
DI가 애플리케이션 모듈들 간의 결합도를 낮춰준다면, AOP는 애플리케이션 전체에 걸쳐 사용되는 동일한 기능을 재사용하도록 지원하는 것이다.
AOP는 Aspect-Oriented Programming 의 약
0
0
0
읽기모드
4y
DI/IoC
DI / IoC
의존성 주입(Dependency Injection)
정의
객체를 직접 생성하는 것이 아니라, 외부에서 생성한 후 주입을 하는 방법이다.
DI의 가장 큰 목적
객체 간의 결합도를 느슨하게 하고(의존성을 낮추고) 확장
0
0
0
읽기모드
4y
JUnit5
JUnit 5
JUnit5란 무엇인가?
Junti은 이전 Junit과 달리, 3개의 다른 서브 프로젝트로부터 각기 다른 모듈들로 구성되어있다.
JUnit 5 = Junit Platform + JUnit Jupiter + Junit
0
0
0
읽기모드
4y
Bean 등록
Bean 등록
Bean의 정의
Spring IoC 컨테이너가 인스턴스화, 관리, 생성하는 자바 객체이다.
빈과 빈 사이의 의존성은 컨테이너가 사용하는 메타데이터 환경설정에 반영된다.
스프링에서의 Bean은 보통 Singleton(
0
0
0
읽기모드
4y
Dependency
의존성이란?
public class Car {
Tire tire;
public Car(){
tire = new Tire();
}
}
와 같은 코드가 있을 때, Car의 생성자는 Tire객체를 새로 생성한다. 자동차라는 객체
0
0
0
읽기모드
4y
Validator, @InitBinder
폼에서 에러가 발생할 때
@PostMapping("/sign-up")
// @Valid SignUpForm signUpForm -> signUpForm 유효성 검증해라
public String signUpSubmit(@Valid
0
0
0
읽기모드
4y
Array
Array
메모리 상에 원소를 연속하게 배치한 자료구조
성질
O(1)에 k번째 원소를 확인 / 변경 가능
추가적으로 소모되는 메모리의 양(=overhead)가 거의 없음
Cache hit rate가 높음
메모리 상에 연속한 구간을
0
0
0
읽기모드
4y
BFS
BFS
다차원 배열에서 각 칸을 방문할 때 너비를 우선으로 방문하는 알고리즘
시작하는 칸을 큐에 넣고 방문했다는 표시를 남김
큐에서 원소를 꺼내고, 그 칸에서 상하좌우로 인접한 칸에 3번을 진행
해당 칸을 이전에 방문했다면 아무
0
0
0
읽기모드
4y
Queue
큐
먼저 집어넣은 데이터가 먼저 나오는 자료구조
구현
by 배열
FIFO(First In First Out)
원소 추가, 제거 : O(1)
제일 앞, 뒤 원소 확인 : O(1)
맨 앞뒤 원소 제외 나머지 원소 확인, 변경 원칙적으
0
0
0
읽기모드
4y
Stack
스택
한 쪽 끝에서만 원소를 넣거나 뺄 수 있는 자료구조
FILO (First In Last Out)
Restricted Structure - 큐, 스택, 덱
특정 위치에서만 원소를 넣거나 뺄 수 있음
원소의 추가와 제거, 최상단
0
0
0
읽기모드
4y
Spring Boot - JPA - MySQL 연동
참고한 블로그 글입니다.
(소소한 삽질을 해서 정리해두는 글..)
1. build.gradle 의존성 설정
build.gradle
implementation 'org.springframework.boot:spring-boot-st
0
0
2
읽기모드
4y
Vector
성질 및 기능
배열과 달리 크기를 자유자재로 늘이거나 줄일 수 있는 장점이 있다!
insert나 erase가 이미 구현되어있음 ( 시간 복잡도 : O(N) )
제일 끝에 원소 추가 or 제거 → pushback , popback
0
0
0
읽기모드
4y
package, import, classpath
7주차
package
정의
관련된 클래스 혹은 인터페이스들의 묶음이다. 파일 디렉토리의 폴더라고 생각하면 된다.
사용 이유
name confilcts 피함 → 클래스명의 고유성 보장
코드의 더 나은 유지보수를 위해
com.exa
0
0
0
읽기모드
4y
상속
6주차
상속
재사용 + 확장
정의
클래스들은 다른 클래스로부터 파생될 수 있고, 따라서 해당 클래스에서 필드와 메서드를 상속받는다. 다른 클래스로부터 파생된 클래스는 하위 클래스(파생 클래스, 확장 클래스, 자식 클래스)라고 불린
0
0
0
읽기모드
4y
클래스
5주차
클래스
클래스 선언
class MyClass {
// field, constructor, and
// method declarations
}
기본 선언 방식은 위와 같다.
클래스 몸체는 새로운 객체를 초기화하는 생성자,
0
0
0
읽기모드
4y
IntelliJ에서 JUnit 5 Test 시@DisplayName이 보이지 않을 때
JUnit 5 Jupiter로 테스트를 실행하는데 지정한 DisplayName은 보이지않고 각 클래스와 메소드 이름만 보였다..😞
💡How to Solve
Preferences → Build, Execution, Deploym
0
0
0
읽기모드
About
Badge
Contact
Activity
Terms of service
Privacy Policy