전체 글 338

[effective java] 3판 요약 보면서 (2)

더보기 https://github.com/keesun/study/blob/master/effective-java/item5.md 리소스를 엮을 때는 의존성 주입을 선호하라 public class SpellChecker { private final Lexicon dictionary; public SpellChecker(Lexicon dictionary) { this.dictionary = Objects.requireNonNull(dictionary); } public boolean isValid(String word) { throw new UnsupportedOperationException(); } public List suggestions(String typo) { throw new Unsupporte..

Web/JAVA 2023.04.18

[Functional Interface]

더보기 https://youtu.be/nKBd1fU1cxM 함수형 인터페이스 -> 1개의 추상 메소드를 갖는 인터페이스 2개의 추상 메소드가 있다면 X 단 한개여야만 함 Java 8 버전 이후에는 Default Method 사용할 수 있음 구현된 함수형 인터페이스는 명시적으로 @FunctionalInteface 표시로 요건 검증 가능 인터페이스에는 내부에 로직이 포함되지않은 메소드가 있어야 한다. 보통 직접 만들지는 않고 제공해주는 인터페이스를 사용하게 됨 Predicate Boolean 타입을 리턴하는 인터페이스 boolean test(T t) Consumer 인자를 받고 리턴은 없음 void accept(T t) Supplier https://delightpip.tistory.com/165 [Java..

Web/JAVA 2023.04.18

[자료구조] DFS, BFS

더보기 https://youtu.be/waPwUJu0-lo?list=PLlTylS8uB2fCoXCVtfJ0wzotOU8a3ti6M https://thinkground.studio/%EC%9E%90%EB%A3%8C-%EA%B5%AC%EC%A1%B0-%EB%82%B4%EC%9A%A9-%EC%A0%95%EB%A6%AC-dfs-bfs/ DFS (Depth First Search) 그래프 탐색의 한 종류 깊이 우선 탐색이라고 부름 루트 노드나 임의의 노드에서 시작하여 최대로 진입할 수 있는 깊이까지 탐색한 후 돌아와 다른 노드로 탐색하는 방식 Stack을 사용하여 데이터를 탐색 장점 - 한 노드상의 노드들만 기억하면 되므로 저장공간 수요가 비교적 적음 - 목표 노드가 깊은 단계에 있을 경우 해를 빨리 구할 수 있..

Web/JAVA 2023.04.17

[Persistence] JDBC, SQLMAPPER, ORM

더보기 https://youtu.be/mezbxKGu68Y Persistence 데이터를 생성한 프로그램의 실행이 종료되더라도 사라지지 않는 데이터의 특성 : 영구적으로 지속시키는 데이터 어떻게 영속성을 만들어줄 것이냐에 대한 고찰 JDBC - JDBC API SQLMAPPER - MyBatis, JDBC ORM - JPA, GIBERNATE, JDBC(?) / JPA JDBC API java database connectivity 1990년대 중반에 생김 JAVA Database 연결 표준 인터페이스 중복코드의 문제 SQL 수동의 불편함 connection 관리의 어려움 이러한 문제를 해결하기 위해 두가지 방식이 나옴 1. SPRING -> JDBC 추가 단계가 생김 RowMapper 를 달아서 추상화..

Web/tip 2023.04.16

[IntelliJ] 단축키 적극활용

더보기 https://youtu.be/gkutTlwi70s Key Promoter X 를 보면서 마우스 동작 키보드 알아두기 모든 것을 검색해줌 ⇧+⌘+F Preview search results Debug 모드 실행 -> break point 를 이용해서 디버깅 실행 Resume 다음 브레이크포인트로 넘김 Variables 창에서 지역Scope 값 체크 Step Into Shift + F7 Steop out Shift + F8 Drop Frame 원하는 조건만 찾아서 확인이 가능하다 Evaluate alt + F8 Expression 에서 모든 scope에서 가능한 기능을 실행시켰을 때 담긴 값을 확인할 수 있다 -> 실제 코드가 실행되니 주의할 것 New Whatch - insert 를 누르면 bre..

Web/tip 2023.04.16

[Web Security] SQL Injection

더보기 https://youtu.be/laQAQeuuJF4 SQL Injection 종류 Error Based SQL Injection 문법오류 발생시켜서 정보를 가져감 Union Based SQL Injection 컬럼의 갯수 확인 union 대응 방법 : 1 에러 메세지 노출 차단 2 사용가능한 특수문자 제한 및 필터링 3 PreparedStatements JdbcTemplate 는 기본적으로 PreparedStatements 사용 JPA 는 parameter binding 을 사용하여 대응 Blind Based SQL Injection Stored Prosed SQL Injection Time Based SQL Injeciton 등등

Web/tip 2023.04.15

[Spring Boot] 강의 들으면서 쫌쫌따리

더보기 https://youtu.be/z0EaPjF3pCQ 개발 툴 Spring-Boot-DevTools build만 하면 된다 최소한의 변경 부분만 바로 반영됨 패키징 상태에서 실행할 때 DevTools 의 기능을 무시해주기 때문에 배포시에 패키징에 굳이 뺄 필요가 없다 재기동의 메카니즘 : watcher 가 변경된 것을 감지한다. Spring Boot 자동 설정 Convention over Configuration 애플리케이션에서 설정한 bean 등록시킴 @ComponentScan @Component, @Service, @Controller, @Repository @Configuration @Bean 자동설정으로 제공하는 bean 등록 META-INF/spring.factories (밑에 설명) En..

Web/tip 2023.04.14
728x90