본문 바로가기

분류 전체보기58

Spring 단위테스트 - 1 Spring Boot 단위테스트 단위테스트란 앱을 모듈단위로 각각 테스트하는것이다. 스프링에서 단위테스트를 어떤식으로 진행하는지에 대해 적어본다. 우선 단위테스트를 위해 한가지 예시코드를 만들었다. public interface RepositoryInterface { boolean save(UserDto userDto); } @Repository public class MyRepository implements RepositoryInterface{ private Hashtable userTable=new Hashtable(); @Override public boolean save(UserDto userDto){ userTable.put(userDto.getName(),userDto); return use.. 2021. 2. 28.
Collection Framework 정리표 자바 Collection Framework는 크게 List,Set,Map으로 분리가 된다. 그리고 List,Set은 공통분모가 많아서 Collections라는 인터페이스로 묶인다. List 순서가 있는 집합, 중복 허용 ArrayList,LinkedList,Stack,Queue 등 Set 순서가 없고 중복을 허용하지 않음 HashSet,TreeSet 등 Map Key,Value쌍으로 구분, 순서없음, 중복허용하지 않음 HashMap,TreeMap,HashTable,Properties 등 대부분의 자료구조들은 위 3가지 분류에 포함이 되기 때문에 3가지 분류의 특징들을 잘 알아두고 사용하는 것이 중요하다. Collections 인터페이스 메소드 설명 boolean add boolean addAll(Coll.. 2021. 2. 25.
자바 synchronized 이해 synchronized 메소드 public class Test { public synchronized void foo(){ for(int i=0;i{ test.voo(); }).start(); } } 위처럼 실행하면 첫번째 쓰레드가 작업(foo 메소드 실행)을 모두 마칠때까지 두번째 쓰레드는 voo를 호출하지 못한다. static synchronized 메소드 그럼 여기서 한가지 생각이 든다 static 메소드는 어떻게 될까? static 메소드는 heap영역에 할당되지 않고 static영역에 들어간다. 그러므로 static synchronized 메소드는 인스턴스의 lock이 아닌 클래스의 lock을 가지게 된다.. public class Test { public static void foo(){ sy.. 2021. 2. 24.
InMemory-H2 이번글은 스프링에서 H2-Database를 사용하는 설명할 것이다. H2-Database는 Mysql,MariaDb등과 다르게 따로 설치하지 않고 의존성만 추가해주면 사용할 수 있는 인메모리 데이터베이스이다. H2-Database를 사용해서 DB를 설치하기전에 미리 테스트를 해볼 수 있다. //Maven com.h2database h2 runtime //gradle testImplementation group: 'com.h2database', name: 'h2', version: '1.4.200' 우선 메이븐,그레이들 각각 사용하는것에 맞게 의존성을 추가해주자. 다음으로는 resources디렉토리 밑에 위처름 schema.sql을 만들어주자. ql파일은 각각 database에 들어갈 DDL문을 넣어놨다 .. 2021. 2. 23.
Hashing 이번에는 위 영상을 보고 Hash에 대해 다시한번 복습하고자 글을 써본다. Hashing이란? Hashing 구조 Hash 간단 구현 1. Hashing란? 선요약 1.해싱은 자료를 저장하는 자료구조중 위치의 개념을 사용하지 않는 방법 2.자료를 Key,Value쌍으로 저장하고 Key만 있으면 자료를 찾는데 O(1)의 시간복잡도로 찾을 수 있다. 3.Key를 만들기 위해 해시함수가 존재 하며 해시함수의 성능에 따라 해싱의 효율이 달라진다. 4.Key를 만드는 해시함수를 잘만들어도 Key의 중복(충돌)이 일어날 수 있으니 대비를 잘해야한다.(체이닝) 우선 Hash는 컴퓨터에서 자료를 저장하는 컨테이너중 하나이다. 그런데 이 Hash는 여러 컨테이너들중(List,Queue,Stack...) 가장 컴퓨터를 이.. 2021. 2. 21.
http 메소드 HTTP 메소드 현재 우리가 인터넷을 통해 하는 대부분의 통신은 http를 통해 이뤄진다. http 통신으로 예전에는 html을 전송하고 받는게 목적이였지만 최근에는 이미지, 동영상 등등 대부분의 리소스들을 http로 주고받는다. 이렇게 주고 받는데에 http메소드의 종류와 각 종류들의 특징을 알아보자. http 메소드의 종류 http메소드의 종류는 여러가지가 있지만 아래 5개만 알면된다. 나머지는 거의 사용되지 않는다.(더욱 요약하면 get, post 2가지만 알아도 간단한 것들은 크게 상관이 없다.) get post put patch delete 각각의 메소드들을 만든 이유는 통신에서는 여러 상황이 존재하는데 모든 상황을 천편일률적으로 처리하는데에는 한계가 있고, URI설계에도 문제가 생기기때문에 만.. 2021. 2. 16.