본문 바로가기

백엔드 학습 과정/Section 2 [재귀함수, 자료구조, 네트워크]

(16)
코드스테이츠 백엔드스쿨 42기 Section2 회고록 2022.12.14 코드 스테이츠 백엔드 스쿨 섹션 2가 끝이 났다. 섹션 2에서는 섹션1에서 배운 Java를 베이스로 자료구조, 네트워크, 웹, REST API, 데이터베이스, SQL 문법, Spring Framework(IoC, DI, OP) 등 앞으로 백엔드 개발자로써 사용하게 될 기본 툴에 대한 개념을 학습하는 시간이었다. [섹션2의 한줄 평] 애플리케이션 개발을 위한 코드를 작성 및 구현할 단계에 대한 이론적 지식을 습득하는 섹션. 만약 이런 과정없이 학습 컨텐츠 코드 예제를 보며 따라 치기만 한다면 내가 뭘 하고 있는지, 작성하는 코드의 구조가 어째서 이렇게 되는건지 스스로 돌아보거나 생각해볼 여유도 이유도 없을텐데 다행히 섹션2는 거기에 대한 최소한의 대비를 할 수 있는 굉장히 값진 기간이자..
#7-2 Spring Framework 심화 [AOP] = 용어, 포인트컷 표현식, AOP 애너테이션 === 지극히 개인의 공부를 위함이며, 높은 확률로 적절치 않은 내용이 있을 수 있음을 미리 밝힙니다. 정정할 정보가 있거나 더 나은 정보가 있다면 댓글로 가르침을 요청드립니다. === [OOP] OOP의 핵심은 공통된 목적을 띈 데이터와 동작을 묶어 하나의 클래스, 객체로 정의하는 것. 객체를 적극적으로 활용함으로써 기능을 재사용할 수 있는 것이 장점. [문제점] 특정 객체에 핵심 기능과 부가 기능이 공존함. 1. 메소드 복잡도 증가 -> 비즈니스 코드 파악 어려움. 2. 부가 기능의 불특정 다수 메소드가 반복적으로 구현 -> 부가 기능의 모듈화가 어렵다. [AOP] 애플리케이션의 로직을 핵심 기능 관점, 공통 기능 관점 으로 분리하여 그 관점을 기준으로 모듈화 하는 것 핵심 기능 관점 업무 로직을 포..
#7-1 Spring Framework 심화 [ Spring Container, Bean, BeanDefinition, Scope, Annotation ] 제 개인의 공부를 위해 제가 학습한 내용을 토대로 작성된 정보입니다. 잘못된 정보나 부족한 정보가 있을 가능성이 많이 높습니다. 해당 부분 참고하셔서 읽어봐주시고 보충할 부분이 있다면 댓글로 가르침 부탁드립니다. ** 바쁘신 분들은 제일 아래에 정리 블록을 참고해주세요 ** [Spring Container] ApplicationContext를 스프링 컨테이너 라고 지칭하고, 이는 인터페이스 타입으로 구현되어 있다. [Spring Container 역할] 내부에 존재하는 애플리케이션 객체(Bean)을 생성, 관리 및 제거 역할을 담당한다. (=생명주기 관리) @Bean이 적힌 메소드들 (Only 객체를 반환하는 메소드)을 호출하여 반환된 객체를 Spring 컨테이너에 등록 [Spring Container ..
#7. Spring Framework [기초] 1. 프레임 워크 (Framework) 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게 일련의 협업화된 형태로 클래스들을 제공하는 것. 즉, 프로그래밍을 하기 위한 어떠한 기본적인 틀이나 구조를 제공하는 것이다. [장점] 1. 효율적인 코드 작성 Framework에서 어플간의 통신, 데이터 저장소에 저장 등 기본적인 기능을 제공하므로 개발자는 핵심 로직을 개발하는 것에 집중할 수 있다. 2. 작성 이후 효율적인 관리 및 유지 보수 Framework의 규약에 맞게 코드를 작성하므로, 유지보수의 경우 수월하게 관리가 가능. 다른 사람이 작성한 코드의 경우에도 Framework 규약에 맞추어 작성했으므로 수정 및 확장이 가능. [단점] 1. 진입 장벽 사용하고자 하는 Framework에서..
Spring IoC / DI 에 관한 학습. // 추가 업뎃 예정 우선 Spring IoC / DI 관련 학습에 있어서 많은 도움을 주신 동기 윤*현님과 김*소님께 감사의 말씀을 드립니다. 1. IoC (Inversion Of Control) : 제어의 역전. 2. DI (Despendency Injection) : 의존성 주입. 3. 실제 예시 4. 여전히 남은 궁금증 Spring IoC / DI 관련해서 학습하던 중 자바 언어에 대한 이해도 문제와 마주치게 되었다. 1. IoC (Inversion Of Control) : 제어의 역전. 이론상 IoC는 제어의 역전. 즉 어플리케이션 흐름의 주도권이 뒤바뀐 것 이라는 의미이다. 예를 들자면 특정 객체가 재료로 사용할 의존 객체를 본인의 클래스 내에서 = new 생성자()로 직접 만들어 사용하는게 아니라 '생성자'나 '..
#6-3. SQL 자가 학습 확인 문제들 1. Primary key의 역할은? 2. student 테이블을 만들고 StudentId, StudentName, StudentScore을 속성으로 가지고 그 값이 1 "KimCoding", 85를 가지게 만드려면? 3. student 테이블에서 이름이 a로 시작하는 학생들만 추리려면 어떻게 해야할까? 4. customer 테이블에 새로운 값을 넣으려 한다 이때 써야 하는 메소드는? 5. student 테이블의 총 학생수를 세려면 어떻게 해야할까? 6. 데이터베이스를 두개를 생성 했다 new 와 old new에 들어왔는데 old로 옮기려면 어떻게 해야할까? 7. SQL이란 무엇인가 8. 관계형 DB란 ? 9. Query ? 10. NoSQL 이란 ? 11. 관계형DB 생성 순서 12. SQL과 NoSQ..
#6-2. SQL 문법 정리 [SQL 문법] 1. 키워드 : 데이터를 선택하는 키워드 Q1. 특정 테이블이 가진 모든(*) 컬럼(Field)를 가져와라 >> SELECT * FROM 테이블명; Q2. 특정 테이블에서 특정 컬럼을 가져오기 >> SELECT 컬럼명 FROM 테이블명; Q3. 특정 테이블에서 특정 컬럼과 다른 값 가져오기 >> SELECT DISTINCT 컬럼명 FROM 테이블명; 2. 키워드 : 테이블의 특정 컬럼 데이터 중, 조건에 충족한 레코드만을 추출. Q1. 테이블 A의 컬럼B의 값이 C인 데이터를 가져와라 SELECT * FROM A WHERE B = C; Q2. 특정 테이블A에서 B컬럼의 값이 C가 아닌 데이터 가져오기 SELECT * FROM A WHERE NOT B = C; Q3. 특정 테이블A에서 컬럼..
#6-1. DATABASE 생성 순서 [Database와 Table 작성 순서 가이드] Database 생성 -> Table 생성 -> 테이블의 컬럼 확인, 추가 -> 테이블의 컬럼에 있는 Data 확인, 추가 [1. Database 확인 / 생성 / 사용 / 삭제 / 변경] A. DB 목록 확인 Show databases; B. DB 생성 Create database 생성할_DB이름; C. DB 사용 Use 사용할_DB이름 D. DB 삭제 Drop database 삭제할_DB이름; E. DB 이름 변경 // 이전 DB에 있던 테이블을 모두 새로운 DB로 이동하고 이전 DB 삭제. Create database 새로운_DB명; Rename table 기존DB명.기존table명 to 새로운DB명.새로운table명; Drop database 기존..