본문 바로가기
관리자

Programming-[Backend]/Java

(39)
자바 기초 강의 정리 - 3. 멀티태스킹(쓰레드) - 1: Thread, Runnable, Group, Daemon 인프런 얄코의 제대로 파는 자바 강의를 듣고 정리한 내용이다. 중요하거나 실무를 하면서 놓치고 있었던 부분들 위주로만 요약 정리한다.자세한 내용은 강의를 직접 수강하는 것이 좋다.https://www.inflearn.com/course/%EC%A0%9C%EB%8C%80%EB%A1%9C-%ED%8C%8C%EB%8A%94-%EC%9E%90%EB%B0%94/dashboard   1. 쓰레드 프로세스 vs 쓰레드프로세스는 컴퓨터에서 실행 중인 프로그램이라고 보면 된다. 기본적으로 프로세스간 자원이 공유되지는 않는다. 쓰레드는 한 프로세스 안에서 일어나는 여러 실행 흐름을 의미한다. 이 쓰레드는 같은 프로세스 내의 공유 자원을 사용할 수 있기 때문에 공유 자원 사용에 유의해야한다. 쓰레드 생성 방법다음 두 가지의..
자바 기초 강의 정리 - 2. 컬렉션, 함수형 인터페이스, 에러와 예외 인프런 얄코의 제대로 파는 자바 강의를 듣고 정리한 내용이다. 중요하거나 실무를 하면서 놓치고 있었던 부분들 위주로만 요약 정리한다.자세한 내용은 강의를 직접 수강하는 것이 좋다.https://www.inflearn.com/course/%EC%A0%9C%EB%8C%80%EB%A1%9C-%ED%8C%8C%EB%8A%94-%EC%9E%90%EB%B0%94/dashboard    1. 컬렉션  ListLinkedList스택과 큐는 예전에는 따로 자료구조로 사용하였으나, 현재는 LinkedList 하나로만 사용한다. ArrayList vs LnikedList주로 ArrayList를 많이 쓰지만, 장단점에 대해 잘 기억하고 써야한다. ArrayList는 각 요소들로의 접근이 빠르지만 추가 |  제거 시에는 성능에..
gradle -Build Tools 설정, 서브 모듈, task에 대한 기본적 이해 자바 - 스프링부트 프로젝트에서 gradle을 이용하여 종속성 관리를 많이한다. 환경 설정 셋업이라 주니어 개발자로써 잘 모르는 내용이 많았는데, 대략적으로라도 이해한 내용을 정리해놓는다.  아래 gradle 공식 사이트에서 docs - running gradle builds - Tutorial 부분을 20~30분만 읽어봐도 대략적으로 이해할 수 있다.ref) https://docs.gradle.org/current/userguide/part1_gradle_init.html 1. build 자바- 스프링 계열에서 프로젝트 build를 하는 것은 실행가능한 .jar 파일을 만드는 과정이다. 직접 작성하는 .java 파일들을 JVM이 해석할 수 있는 .class 파일로 변환하고 메인 함수의 위치는 어디인지(..
자바 기초 강의 정리 - 1. 기초 ~ 함수, 제너릭까지 인프런 얄코의 제대로 파는 자바 강의를 듣고 정리한 내용이다. 중요하거나 실무를 하면서 놓치고 있었던 부분들 위주로만 요약 정리한다.자세한 내용은 강의를 직접 수강하는 것이 좋다.https://www.inflearn.com/course/%EC%A0%9C%EB%8C%80%EB%A1%9C-%ED%8C%8C%EB%8A%94-%EC%9E%90%EB%B0%94/dashboard  1. 자료형자바에는 1 바이트 단위의 byte, 2바이트의 short도 있지만, int를 많이 사용한다. 타 언어들 및 라이브러리와 호환성을 위해서 이기도 하고, 대부분의 CPU에서 int의 4바이트(32비트)가 처리하기 적합한 크기이기 때문이기도 하다.float 대비 double은 표현 범위도 넓지만 표현의 정밀도도 더 크다.char는..
자바 linter, 포매팅 처리 : spotless, googlejavaformat, commit시 자동 적용 자바 코드의 문법 규칙을 만들고 자동으로 처리해주는 linter에 대해서 정리한다.  googlejavaformat구글에서 제공하는 format이다. 실제 구글에서 사용한다고 한다. intellij에서 설정하여 로컬로 사용할 수 있는데, 자세한 설정 방법은 아래 블로그를 참고하면 된다.https://velog.io/@ppinkypeach/IntelliJ%EC%97%90-Google-Java-Style-format-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0 *요약https://github.com/google/styleguide -> intellij-java-google-style.xml 파일을 다운환경 설정 -> Editor -> Code StyleScheme -> Import Sc..
[경험 요약] 자바 테스트 객체 자동으로 만들기: Instancio 라이브러리 오랜만에 자바-스프링 프로젝트를 진행하면서 테스트 케이스상 필요한 given 객체들을 만들어내야하는데, 각 속성값들을 직접 다 지정해줘야하는게 너무 불편했다. 파이썬-장고 계열에서는 Model Bakery를 사용했었는데, 자바에서는 그런 라이브러리를 사용한 기억이 없어서 라이브러리를 찾아보기로 했다! Instanciohttps://mvnrepository.com/artifact/org.instancio/instancio-junit  instancio를 maven repository에서 import 해와서 build.gradle에 포함시켰다. 간단한 사용법은 예시는 아래와 같다. user-guide를 5~10분만 보면 바로 어떤 건지 알 수 있다.https://www.instancio.org/user-gu..
[TIL][작성Java - @RequestBody null 문제: jackson, @NotNull, @NoArgsConstructor 문제 상황 controller와 @RequestBody를 아래처럼 정의하고, http POST request을 json 형태로 전송했다. 그런데 에러가 발생했다. @PostMapping("/stock") public void stockItem(@RequestBody @Valid ItemPo itemPo) { ... } // @Data public class ItemPo { @NotNull private ItemType itemType; } 에러코드 일부 Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of ... (no Creators, like default construc..
[TIL] 클래스 내 private 메서드 임시 테스트 @PostConstruct, Column 이름 예약어 escape 처리 1. 클래스 내 private 메서드 임시 테스트 테스트 코드를 남길 필요가 없거나, 테스트를 하기가 곤란한 경우 임시로 빠르게 테스트를 할 수 있는 방법으로 @PostConstruct를 이용할 수 있다. DB에 잘못된 데이터가 삽입될 수 있으므로 사용에 주의해야한다!! 위 그림처럼 Class내에 save... 메서드가 있고 이것을 임시 테스트하고 싶다면 @PostConstruct의 init() 메서드에 해당 메서드를 불러와서 실행하면 된다. 메서드에 들어가는 인자값들을 세팅해주고 세팅 과정에서 필요하다면 XxxRepository 같은 다른 클래스를 @Autowired로 주입받으면 된다. 이후 디버깅 모드로 breakpoints를 잡고 테스트해보면 파악이 힘든 에러나 동작 테스트를 임시로 해볼 수 있다...