분류 전체보기 118

스프링(Spring)은 왜 사용할까?

스프링이라는 기술을 배우고, 사용하는데 왜 사용하는지도 모르고 쓰는거 같아서 이렇게 정리를 하게되었습니다. 스프링이란? 우선 스프링은 왜 만들어 졌을까요? 스프링이라는 기술의 핵심 컨셉은 무엇인지 생각해보신 적이 있으신가요 스프링은 자바언어 기반의 프레임워크입니다. 자바언어 기반이니 자바의 가장 큰 특징은 무엇일까요. 바로 객체지향언어 입니다. 스프링은 객체지향언어가 가진 특성(추상화, 상속, 캡슐화, 다형성)을 살려내는 프레임워크 라고 할 수 있습니다. 즉. 스프링은 좋은 객체지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크입니다. 그러면 왜 사용하는지도 답이 자연스럽게 나오게 됩니다. 스프링이 지원하는 기술 DI(Dependency Injection), DI 컨테이너 제공을 통하여 다형성과 OC..

스프링 2022.03.25

다익스트라 알고리즘(Dijkstra Algorithm) - JAVA

다익스트라 알고리즘 이란? 그래프에서 여러 개의 노드가 있을 때, 특정한 한 정점(=노드)에서 출발하여 다른 모든 정점으로 가는 최단 경로를 구하는 알고리즘입니다. 다익스트라 최단 경로 알고리즘은 '음의 간선' 즉, 가중치가 0보다 작은 값이 아닌 경우에 때 정상 동작합니다. 현실 세계에서의 길(간선) 음의 간선으로 표현되지 않아 다익스트라 알고리즘은 실제로 인공위성 GPS 소프트웨어 등에서 가장 많이 사용됩니다. 다익스트라 최단 경로 알고리즘은 기본적으로 그리디 알고리즘으로 분류됩니다. 왜냐하면 매번 '가장 비용이 적은 노드'를 선택해서 임의의 과정을 반복합니다. 동작과정 출발 노드를 설정 최단 거리 테이블 초기화 방문하지 않은 노드 중에서 최단 거리(가중치)가 가장 짧은 노드 선택 해당 노드를 거쳐 ..

알고리즘 정리 2022.03.23

@Bean 과 @Component 의 차이?

스프링 영한님 강의중.. @Bean 은 해당 어노테이션이 붙은 메서드를 모두 호출해서 반환된 객체를 스프링 컨테이너를 등록하고, 이렇게 등록된 객체를 스프링 빈이라 하며, 싱글톤으로 관리가 된다. @Component 는 @ComponentScan 이 @Component 가 붙은 모든 클래스를 스프링 빈으로 등록하게 되는데, 이때 스프링 빈의 기본 이름은 클래스명을 사용하되 맨 앞글자만 소문자를 사용하게 된다. 이렇게 보면 둘다 스프링 빈으로 등록하게 되는건 알겠는데 무슨 차이가 있을까? @Bean @Bean 어노테이션은 개발자가 컨트롤이 불가능한 외부 라이브러리들을 Bean으로 직접 등록하고 싶은 경우에 사용 된다. AppConifg 라고 직접만든 설정 정보 클래스인데 이 클래스는 @Configurati..

스프링 2022.03.22

MySQL - View

View 란? 뷰는 데이터베이스에 존재하는 가상의 테이블을 뜻합니다. 실제 테이블 처럼 행과 열을 가지고 있지만 실제로는 데이터를 저장하지 않습니다. 뷰 생성 - 뷰의 이름을 명시하고 , AS 키워드 다음에 SELECT 문을 사용하여 해당 뷰가 접근할 수 있는 필드를 명시 CREATE VIEW 뷰이름 AS SELECT 필드이름1, 필드이름2, ... FROM 테이블이름 WHERE 조건 ... 뷰 대체 - OR REPLACE 절을 추가하여 기존에 존재하는 뷰를 새로운 뷰로 대체 가능, 만약 뷰가 없으면 생성과 동일한 기능 CREATE OR REPLACE VIEW 뷰이름 AS SELECT 필드이름1, 필드이름2, ... FROM 테이블이름 WHERE 조건 ... 뷰 삭제 - DROP 문을 사용하여 뷰 삭제가..

MySQL 2022.03.21

MySQL - 기본키(Primary Key) , 외래키 (Foreign Key)

[업데이트 예정입니다..! 가볍게만 참고하세요.] 기본키 - Primary Key 테이블의 각 row 를 유일성과 최소성을 만족시키면서 식별할 수 있는 후보키 중에 선택한 Main key Candidate Key(후보키)중에 선택한 Main Key *유일성과 *최소성을 만족 중복되지 않는 고유값만 허용 NULL 값 허용하지 않음 테이블당 하나의 기본키만 지정 가능 *Candidate Key ? : 관계형 데이터베이스에서 *릴레이션(Relation)의 튜플을 유일하게 식별할 수 있는 속성 또는 속성의 집합 중, 다음 두 성질을 만족해야 함 유일성(uniqueness) : 릴레이션에 있는 모든 튜플에 대해 유일하게 식별되어야 한다. 최소성(minimality) : 유일성을 가진 키를 구성하는 속성(Attri..

MySQL 2022.03.21

[백준14938] - 서강그라운드

ㄷhttps://www.acmicpc.net/problem/14938 14938번: 서강그라운드 예은이는 요즘 가장 인기가 있는 게임 서강그라운드를 즐기고 있다. 서강그라운드는 여러 지역중 하나의 지역에 낙하산을 타고 낙하하여, 그 지역에 떨어져 있는 아이템들을 이용해 서바이벌을 www.acmicpc.net [문제풀이 전] 다익스트라 알고리즘을 알아야 이 문제를 해결할 수 있습니다. 해당 알고리즘 개념을 모르면 쉬운 개념의 문제부터 익히고 오거나, 검색하셔서 해당 개념을 익히면 금방 풀 수 있는 정도의 난이도입니다. [문제풀이] 다익스트라를 활용한 문제로 수색할 수 있는 거리가 한정되어 있어, 한 정점에서 다른 정점으로 이동하는 최소거리를 전부 구하여 dist배열에 담아주고, 움직일 수 있는 범위이면 해..

백준 문제풀이 2022.03.18

람다식(Lambda expression) - JAVA

람다식이란? 람다식은 메서드를 하나의 식으로 표현한 것입니다. 메서드를 간략하면서도 명확한 식으로 표현할 수 있게 해주며, 메서드의 이름과 반환값이 없어지므로 '익명함수(anonymous function)' 이라고도 합니다. 람다식은 '익명 함수' 답게 메서드에서 이름과 반환타입을 제거하고 매개변수 선언부와 몸통{ } 사이에 ' -> ' 를 추가합니다. //기존방식 반환타입 메서드이름(매개변수 선언) { 문장들 } //람다사용 (매개변수 선언) -> { 문장들 } 람다식의 장단점 장점 1. 코드를 간결하고 명확하게 만들 수 있다. 2. 함수를 만드는 과정이 없어 생산성이 높아진다. 3. 다중 cpu를 활용하는 형태로 구현되어 병렬 프로그래밍에 유리 단점 1. 남발하여 사용할 경우 가독성이 오히려 떨어짐 ..

[프로그래머스 Level1] 키패드 누르기 (JAVA) - 2020 Kakao

[문제] 출처 - https://programmers.co.kr/learn/courses/30/lessons/67256?language=java 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr [문제 풀기 전] 예전에 실력이 지금보다 부족할 때 상하좌우 4가지 방향에 이동 한 칸의 거리는 1이니까 bfs 문제인가? 라고 생각을 하고 풀어보려했지만 풀지 못한 기억이 있다. 왼손 오른손이 있고 2, 5 ..

카테고리 없음 2022.03.16

[프로그래머스 Level1] 숫자 문자열과 영단어(JAVA) - 2021 Kakao

https://programmers.co.kr/learn/courses/30/lessons/81301?language=java 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr [문제 풀이] 입력으로 영단어 숫자와, 숫자가 주어졌을때 결과값을 숫자로 바꿔서 return 하도록 구현을 하면 되는 문제입니다. 바꾼다는 점에서 replaceAll 을 떠올렸고, 0 ~ 9 까지의 수를 변환하면 되기 때문에 주어진 영단어 10개를 배열로 만들고 for문을 진행을 하여 해당 단어를 해당 배열의 번호로 바꿔주면 ..

프로그래머스 2022.03.13

MySQL - JOIN

JOIN JOIN 은 데이터베이스 내의 여러 테이블에서 가져온 레코드를 조합하여 하나의 테이블이나 결과 집합으로 표현해 줍니다. 간단하게 테이블을 조립한다 라고 생각하면 될 것 같습니다. 테이블 실습 - https://www.w3schools.com/mysql/trymysql.asp?filename=trysql_select_all MySQL Tryit Editor v1.0 WebSQL stores a Database locally, on the user's computer. Each user gets their own Database object. WebSQL is supported in Chrome, Safari, and Opera. If you use another browser you will st..

카테고리 없음 2022.03.11