본문 바로가기

전체 글171

20221210 주특기 심화 주차 - 2 오늘은 토요일이라 조금은 게일러졌던것 같다. 영상 강의를 마무리 짓고 싶었는데 계속 헤매다 보니 집중도 잘 안되서 금방 마무리 하지 못했고 원래 내가 이시간에 뭘하고 이렇게 생각했는데 그대로 진행이 안되서 시간허비도 많이 했던것 같다. 우선 오늘 기술 매니저님과 1:1로 1주차에 했던 CRUD를 짧게 진행했다. entity, dto, repository, controller, service 이러한 부분들에 대해 헷갈리는게 많았는데 그래도 많이 잡아진 것 같다. 하지만 금방금방 그 부분에 대해 까먹으니 메모하는 습관을 반드시 들여야겠다. 확실히 매니저님이 하나씩 천천히 잡고 가주시니 내가 부족한 부분이 어딘지 느낌이 온다. 그러한 부분들을 잡고 넘어가면 분명 과제를 진행할때 도움이 될 것이라고 느낀다. 그.. 2022. 12. 10.
[Java] 스레드(thread) 프로세스(process) 프로세스(process)란 단순히 실행 중인 프로그램(program) 사용자가 작성한 프로그램이 운영체제에 의해 메모리 공간을 할당받아 실행 중인 것 프로세스는 프로그램에 사용되는 데이터와 메모리 등의 자원 그리고 스레드로 구성 스레드(thread) 스레드(thread)란 프로세스(process) 내에서 실제로 작업을 수행하는 주체 모든 프로세스에는 한 개 이상의 스레드가 존재하여 작업을 수행 두 개 이상의 스레드를 가지는 프로세스를 멀티스레드 프로세스(multi-threaded process)라고 한다 멀티스레드 멀티스레드 =multi thread =다중스레드 멀티스레드는 여러개의 스레드를 이용하는 프로그램이다 다중 스레드에서 각각의 스레드는 하나의 독립적인 프로세스처럼 작업 .. 2022. 12. 8.
20221208 주특기 숙련 주차 - 6 우선 오늘은 주특기 숙련 주차가 마무리 되며 테스트를 봤다. 테스트 내용은 나는 로그인 회원가입에 관한 로직을 짜는 것일꺼라 생각했는데 그런 부분이 아닌 JPA에 관련된 테스트였다. 이번주 JPA 관련해 공부가 많이 미흡해서 걱정이 됐지만 그래도 이틀 전부터 부지런히 관련 공부를 해서 완벽하게는 아니지만 어느정도는 테스트를 잘 마무리 할 수 있엇던 것 겉다. 데이터베이스 연관관계로 다대일 , 일대다, 양방향, 단방향 등 관련 문제들이 나왔는데 다행히 잘 마무리 지어서 다행이다. 데이터베이스(DB) 연관관계 DB 연관 관계 관계형 데이터베이스는 테이블끼리 관계를 맺을 수 있다. 관계는 논리적으로 연관이 있는 두 테이블 사이의 연결을 설정한다. 테이블 구조를 정제하고 중복 데이터를 최소화하는 jkadv.ti.. 2022. 12. 8.
[Spring]@Validation @valid 어노테이션 @Validation 어노테이션 Bean Validation이라는 데이터 유효성 검사 프레임워크를 제공 @Valid를 이용하면, service 단이 아닌 객체 안에서, 들어오는 값에 대해 검증을 할 수 있다. springboot가 버전업을 하면서 web 의존성안에 있던 constraints packeage가 아예 모듈로 빠졌다. implementation 'org.springframework.boot:spring-boot-starter-validation' 유효성 검사에 사용할 수 있는 어노테이션 @AssertFalse -> 주석이 달린 요소는 거짓이어야한다. @AssertTrue -> 주석이 달린 요소는 참이어야한다. @Email -> 주석이 달린 문자열은 이메일 형식이어야한다. @Future -> 주.. 2022. 12. 8.
데이터베이스(DB) 연관관계 DB 연관 관계 관계형 데이터베이스는 테이블끼리 관계를 맺을 수 있다. 관계는 논리적으로 연관이 있는 두 테이블 사이의 연결을 설정한다. 테이블 구조를 정제하고 중복 데이터를 최소화하는 것을 도와준다. 다중성 다대일 (N : 1) (@ManyToOne) 일대다 (1 : N) (@OneToMany) 일대일 (1 : 1) (@OneToOne) 다대다 (N : N) (@ManyToMany) 단방향, 양방향 테이블은 외래 키 하나로 조인을 사용해서 양방향으로 쿼리가 가능하므로 사실상 방향이라는 개념이 없다 반면에 객체는 참조용 필드를 가지고 있는 객체만 연관된 객체를 조회할 수 있다. 연관관계 주인 JPA는 두 객체 연관관계 중 하나를 정해서 데이터 베이스 외래 키를 관리하는데 이것을 연관관계의 주인이라함 주인.. 2022. 12. 8.
[Java/Spring] 스프링 컨테이너 스프링 컨테이너 스프링 컨테이너는 스프링에서 자바 객체들을 관리하는 공간 자바 객체를 스프링에선 빈(Bean), 스프링 컨테이너에서는 이 빈의 생성부터 소멸까지를 개발자 대신 관리해주는 곳 ResourcePatternResolver : 리소스를 읽어오기 위한 인터페이스 EnvironmentCapable : 개발, 운영 등 환경을 분리해서 처리하고, 애플리케이션 구동 시 필요한 정보들을 관리하기 위한 인터페이스 MessageSource : 메시지 다국화를 위한 인터페이스 ApplicationEventPublisher : 이벤트 관련 기능들을 제공하는 인터페이스 스프링 컨테이너는 BeanFactory와 ApplicationContext로 나뉘어진다. 스프링 컨테이너의 최상위 인터페이스이다. 스프링 빈을 관리.. 2022. 12. 8.
[Java/Spring] 객체지향 프로그래밍 5원칙 프로그래밍 다섯가지 개발 원칙은 소프트웨어 개발과 유지보수를 쉽게 할수 있도록 하는 가이드라인이라고 볼 수 있다. 이러한 원칙은 Robert C. Martin이라고 하는 소프트웨어 엔지니어에 의해 유명해졌다. 글에는 이해하기 쉽도록 클래스라는 단어를 사용하지만, 이는 함수, 메서드, 모듈에도 적용이 가능합니다. 이제 시작해봅시다! SRP: 단일 책임 원칙 (Single Responsibility Principle) 클래스는, 오직 하나의 대해서만 책임져야 한다. 만약 클래스가 여러가지 작업을 책임져야 한다면, 이는 버그 발생 가능성을 높입니다. 당신이 많은 기능중 한가지를 변경할때, 당신이 모르는 사이에 다른 기능에 영향을 줄 수 있기 때문입니다. SRP의 목적은 행동들을 분리하는 것이고, 이로 인해 당.. 2022. 12. 8.
[Java/Spring] 어노테이션 어노테이션(@, annotation) 사전적 의미로는 '주석' , Java 코드에 @를 이용해 주석처럼 달아 특수한 의미를 부여 프로그램 코드의 일부가 아닌 프로그램에 관한 데이터를 제공, 코드에 정보를 추가하는 정형화된 방법 즉, 프로그램에게 추가적인 정보를 제공해주는 메타데이터라고 볼 수 있다. * meta data : 데이터를 위한 데이터 2. 종류 1) Spring Annotation @Controller 스프링 MVC의 컨트롤러 객체임을 명시하는 어노테이션 @RequestMapping 특정 URI에 매칭되는 클래스나 메소드임을 명시하는 어노테이션 @RequestParam request의 파라미터를 가져오는 기능을 하며 메소드내에 변수로 활용 @RequestHeader 요청(request)에서 특.. 2022. 12. 8.
20221207 주특기 숙련 주차 - 5 개인과제를 마무리 하고 조원분들과 같이 코드리뷰를 하며 오늘 하루 공부를 했다. 확실히 코드 리뷰가 중요한 부분이다. 내가 기능들을 연결시키고 작동을 시켰음에도 이해가 안되는 부분을 보고 다른 관점에서 얘기해주시는걸 들으니 도움도 많이 됐고 다른 분들의 코드를 보며 방식에 대한 눈에 트인것 같다. 오늘 전에 같은 조였던 분이 회원가입 기능이 작동을 안된다고 해서 같이 모여 코드를 확인했다. 한참을 보며 문제를 찾았는데 결론부터 말하자면 @RequestBody가 없었기에 전달되지 못한 부분이였다. @RestController 가 있기에 굳이 없어도 된다고 판단을 했는데 아니였다. 이 부분에 대해 조금 더 알아볼 필요가 있겠다. @RestController @Controller와는 다르게 @RestContr.. 2022. 12. 7.