부트캠프 기록/Serction2 16

아키텍처

아키텍처(Architecture)의 의미를 이해할 수 있다. 우리가 알아야 할 애플리케이션의 아키텍처를 이해할 수 있다. 아키텍처를 통해 Spring Framework의 모듈(Module) 구성을 이해할 수 있다. 아키텍처: 어떠한 시스템을 구축하는데 있어 해당 시스템의 비즈니스적 요구 사항을 만족하는 전체 시스템 구조를 정의하는 것 컴퓨터 시스템에서의 아키텍처 유형 시스템 아키텍처 소프트웨어/ 애플리케이션 아키텍처 웹 애플리케이션 아키텍처 API 계층 클라이언트의 요청을 받아들이는 계층. 일반적으로 표현 계층(Presentation Layer)라고도 불리지만 REST API를 제공하는 애플리케이션의 경우 API 계층이라고 표현. 서비스 계층 API 계층에서 전달 받은 요청을 업무 도메인의 요구 사항에 ..

Spring Framework 특징

1. POJO(Plan Old Java Object)기반의 구성 pojo programming : POJO를 이용해서 프로그래밍 코드를 작성하는 것 Java나 Java의 스펙(사양)에 정의된 것 이외에는 다른 기술이나 규약에 얽매이지 않아야 한다 예) 특정 기술 상속 특정 환경에 종속적이지 않아야 한다. 예) 톰캣 -> 제티 POJO 프로그래밍이 필요한 이유 특정 환경이나 기술에 종속적이지 않으면 재사용 가능하고, 확장 가능한 유연한 코드를 작성할 수 있다. 저수준 레벨의 기술과 환경에 종속적인 코드를 애플리케이션 코드에서 제거 함으로써 코드가 깔끔해진다. 코드가 깔끔해지기 때문에 디버깅하기도 상대적으로 쉽다. 특정 기술이나 환경에 종속적이지 않기 때문에 테스트 역시 단순해진다. 객체지향적인 설계를 제한..

[Spring Core] AOP

✅ 학습목표 AOP의 의미 이해 AOP가 필요한 이유 이해 AOP에서 사용되는 용어들에 대한 이해 타입별 Advice, Pointcut 표현식, JointPoint 등의 의미를 이해 애너테이션을 이용한 AOP에 대한 이해 ▶ AOP가 필요한 이유 sw 개발에서 변경 지점은 하나가 될 수 있도록 잘 모듈화 되어야 함 OOP만 사용해선 여러 곳에서 공통적으로 사용되는 부가 기능의 중복 코드가 발생하게 됨 중복되는 부가 기능에 수정 및 삭제가 필요하게 되면 사용되는 모든 곳에 수정 및 삭제 동작을 해줘야 함 즉, 부가 기능 코드를 깔끔하게 분리하기 힘들기 때문에 핵심 기능과 부가 기능을 분리하는 AOP 방식이 필요 OOP는 모듈화의 핵심 단위: Class AOP의 모듈화의 핵심 단위: Aspect ▶ AOP의..

부트캠프 2달차 KPT 회고

이 짤 쓰고싶었는데 드디어 쓴다 이번 섹션을 기억나는대로 훑자면 알고리즘, 네트워크 기초, 스프링 코어에 대해 배웠다. 배운 내용을 소화하는게 조금 벅차기 시작했다. 특히 스프링 프레임워크 기술은 깊게 들어가자면 한도끝도 없을 것 같아서 앞으로 부트캠프를 따라가는데 지장이 없을 정도로만 학습해 놓은 상태이다. 이번 회고는 KPT 방식을 권고하길래 해보고자 한다. KPT를 기반으로한 개인 회고 목표 상기하기 Keep, Problem 작성하기 Try 작성하기 우선순위 정하기 1. 목표 상기하기 목표를 상기하기 위한 질문 현재 ‘내'가 학습을 통해 이루고자 하는 것은 무엇인가요? 내년 인턴 합격 + 인턴 후 취업 여러분이 현재 바라는 목표를 모두 이루었다면 ‘나'는 어떻게 변해 있을까요? 사회에서 생산/소비 ..

[Spring Core]

▶자바 빈과 스프링 빈 java bean spring bean 개념 jsp에서 주로 사용되는 것으로 자바 코드로 작성된 class, 데이터 전달 Spring IoC 컨테이너에 의해 관리되는 객체 scope page, request, session, application로 나뉘게 되어 언제 소멸하는지 싱글톤으로 관리되는가 java bean 규약 클래스는 패기지화 되어야 함 멤버 변수는 property(프로퍼티)라고 부름 접근제한자는 private 외부 접근은 게터, 세터로 접근 ▶Bean Definition Abstract 빈디피니션은 추상화돼있음 (다양한 형태로 빈 데이터를 받아야 하기 때문 class, xml, xxx) 클래스가 전달되면 Bean Definition의 구현체 annotatedGeneri..

[Spring Core] spring container 와 bean

학습목표 Spring 컨테이너(Container)와 빈(Bean)의 의미를 이해할 수 있다. 빈 스코프(Bean Scope)의 의미를 이해할 수 있다. Java 기반 컨테이너(Container) 설정에 대해 이해할 수 있다. Spring DI(Dependency Injection)의 의미를 이해할 수 있다. Component 스캔에 대해 이해할 수 있다. ▶Spring 컨테이너 애플리케이션 빈의 생성, 관리, 제거 등 생명주기를 관리 개발자가 정의한 빈을 객체롤 만들어 관리하고 개발자가 필요로 할 때 제공 의존성 주입을 통해 애플리케이션의 컴포넌트를 관리 개발자는 모듈 간에 의존 및 결합으로 인해 발생하는 문제로부터 자유로움 ApplicationContext 를 스프링 컨테이너라고 하고 인터페이스로 구현..

MySQL 설치 오류: installer 중단

MySQL를 재설치 해야해서 레지스트리 편집기로 최대한 삭제했지만 MySQL Connertor가 삭제가 안되는 상태였다. 역시나 오류가 났는데, Installer를 실행하면 아래와 같은 상태에서 진행되지 않고 중단된다. 해결 방법은 꽤나 간단했다. Installer 의 Installation 창에서 필요한 나머지를 따로 설치해주면 된다. 하지만 실행 해보니 문제가 끝이 아니었다... 실행 오류에 대한 글은 아래 포스트로 이어진다. MySQL 실행 오류: Could not acquire management access for administration, MySQL 서비스가 로컬 컴퓨터에서 시작했 MySQL 을 겨우 재설치 하고 Workbench에서 서버에 접속하려하니 아래와 같은 오류가 발생했다. 알림창과..

MySQL 실행 오류: Could not acquire management access for administration, MySQL 서비스가 로컬 컴퓨터에서 시작했다가 중지되었습니다.

MySQL 을 겨우 재설치 하고 Workbench에서 서버에 접속하려하니 아래와 같은 오류가 발생했다. 알림창과 나와있는대로 환경변수를 설정했는데도 똑같은 오류가 발생했다면 내가 해결했던 방식으로 해결 할 수도 있다. 환경변수를 설정하는 첫 번째 해결방안은 처참하게 실패 두 번째로 서비스 유틸리티에서 실행해보니 위와 같은 오류가 떴다. 마지막 시도로 버전을 다운그레이드 하니 성공적으로 실행할 수 있었다. 위의 사진에서 맨 하단에 보면 MySQL Server 5.7버전으로 다운한걸 볼 수 있다.

[데이터베이스] 이상현상과 정규화

▶정규화 정의 이상현상이 발생하는 테이블을 수정하여 정상으로 만드는 과정 -이상현상: 테이블에 투플을 삽입할 때 부득이하게 NULL 값이 입력되거나(삽입이상), 삭제 시 연쇄삭제 현상이 발생하거나(삭제이상), 수정 시 데이터의 일관성이 훼손되는 현상(수정이상) ▶함수 종속성 학생번호 학생이름 주소 학과 학과사무실 강좌이름 강의실 성적 501 박지성 영국 맨체스타 컴퓨터과 공학관101 데이터베이스 공학관110 3.5 401 김연아 대한민국 서울 체육학과 체육관101 데이터베이스 공학관110 4.0 402 장미란 대한민국 경기도 체육학과 체육관101 스포츠경영 체육관103 3.5 502 추신수 미국 클리블랜드 컴퓨터과 공학관101 자료구조 공학관111 4.0 501 박지성 영국 맨체스타 컴퓨터과 공학관101..

[데이터베이스] SQL DB Schema

▶Schema 정의 데이터베이스에서 데이터가 구성되는 방식과 서로 다른 엔티티 간의 관계에 대한 설명 "데이터베이스의 청사진" ▶관계형 데이터베이스 키워드 데이터, 테이블, 칼럼(필드), 레코드(튜플), 키 ▶관계종류 1:1 , 1: N, N:M 관계 자기 참조 (1:N 관계와 유사) 한 개/여러 개 로 구별 가능 ▶인스타그램 스키마 디자인 교육 전 (figma 이용) 교육 후(https://dbdiagram.io/ 이용) 다대다 관계는 조인 테이블이 필수 follow_follower 테이블 하나로 한 객체의 팔로우와 팔로잉을 모두 조회 가능 만약 post_likes나 post_comment의 user_Id를 posts에서 참조한다면 포스트를 올린 해당 유저의 아이디만 참조할 수 있음 더보기 CREATE..