본문 바로가기

국비지원30

2022-04-13의 기록 ▶ 지난 3주 -> 마지막 팀프로젝트인 파이널 프로젝트를 뒤늦게 시작하게 되어 수료 후에 2주를 더하게 되었다. 하필 전주에 코로나 양성 판정이 나는 바람에 컨디션이 좋지 않아 더 늦게 끝낸 것이 내심 아쉽다. 프로젝트는 거의 마무리 단계이며 오늘이나 내일중으로 war 파일을 강사님께 보내드릴 생각이다. 서버에 배포 후 에러 잡기가 완료된 후, 프로젝트에 대한 디테일한 부분들을 회고로 따로 작성하겠다. 오늘부터는 그 동안 하지 못했던 공부를 다시 시작할 생각이다. -> 그 동안 프로젝트로 인해 정신이 없고 하필 최근부터 자가격리를 하게 되어 집밖돌이인 내가 집에만 있다 보니 육체와 정신이 지쳐서 블로그 관리를 하지 못했었는데, 어제 새벽 이후로 프로젝트 관련 모든 코딩을 완료(테스트도 완료)하게 되어 다.. 2022. 4. 13.
2022.03.11~03.13의 기록 ▶ 3일 계획 => 공부 관련 1) 수업 내용 복습 2) MVC 객체지향 리팩토링 완료 3) 기술 질문 답변 노션 정리 및 SOLID 예제 프로그래밍 (OCP & DIP & ISP) 4) 8개의 디자인 패턴 정리 => 파이널 프로젝트 관련 1) ERD 그려 놓고 pdf로 만들어놓기 2) 이미지 수집 마우스 건전지 바꿔라!! [완료] ▶ 문제 정리 1. 생성자를 통해 주입은 괜찮음. 하지만 인스턴스 생성으로 의존하지 말것 (테스트 코드 작성 어려움) > 플레이어로 컴퓨터를 주지말고 외부에서 비교값을 얻어라 public class Player { private final Rsp playerRsp; private final Computer computer = new Computer(); // setter 대신.. 2022. 3. 12.
2022.03.08~03.10 의 기록 ▶ 3일 계획 => 공부 관련 1) 스프링 개구리책 완독 후 노션 및 블로그 정리 2) MVC 객체지향 리팩토링 하루종일 (9일 오늘) 3) 기술 질문 답변 노션 정리 및 SOLID 예제 프로그래밍 => 파이널 프로젝트 관련 1) DB 테이블 완성 및 select JOIN 대략적인 쿼리문 작성 2) git 협업 ▶ 문제 정리 1. 객체 간의 관계 > 단일 책임 원칙으로 클래스를 분리 2. 내부 로직을 구현하는 것은 Model에서 일어나지 않아야 한다 > 상수의 나열인 enum 클래스에서 해결 3. setter 메서드의 생략 (불변성을 지켜라) > 생성자의 주입으로 해결 4. 값 자체의 비교보다 타입의 의미를 더 살려서 비교 > 타입을 적극적으로 사용하여 같은 타입끼리의 비교가 코드 작성의 가독성이 좋다... 2022. 3. 9.
2022.02.28의 기록 ▶ 하루 => 공부 관련 1) 스프링 개구리책 CH3 2) MVC 객체지향 리팩토링 3) 금일 수업 복습 => 파이널 프로젝트 관련 1) UI 업무 분담 회의 ▶ 문제 정리 ▶ 개인 공부 ▶ 수업 내용 MyBatis DB ⇒ DB 여러 테이블 Join 시 중복 컬럼명은 aliasname으로 바꿔준다. 테이블 조인 시 동일한 컬럼명을 가진 경우 두번 째 이상의 컬럼명은 자동으로 변경 DTO 객체 직렬화 클래스 : Serializable 인터페이스를 상속받은 클래스 ⇒ 객체 단위로 입력 또는 출력을 위한 클래스 선언 방법 mapper.xml resultMap 엘리먼트의 하위 엘리먼트 선언 순서 constructor >> id >> result >> association >> collection >> disc.. 2022. 2. 28.
2022.02.25의 기록 => 공부 관련 1) 모던 자바 스트림(Stream) & 입출력 스트림(IO Stream) 2) 금일 배운 내용 복습 3) 기술 질문 용지에 모두 정리 => 파이널 프로젝트 관련 1) UI 회의 ▶ 문제 정리 ▶ 공부 내용 DB DTO 클래스의 필드값과 DB 컬럼명의 이름이 동일하지 않은 경우 제약조건을 걸어두면 좋다. 포함 관계가 성립되기 위해서는 반드시 필드에 인스턴스 저장 1:1 관계의 조인 검색 결과를 저장하기 위한 클래스 ⇒ 기존에 작성된 클래스를 재사용 **POJO(Plan Old Java Object)**하여 새로운 클래스를 쉽게 작성하여 생산성 증가 및 유지보수 효율성 증가 1:N 관계의 조인 검색 결과를 저장하기 위한 클래스 ⇒ 목록을 저장하기 위해 List 자료형 이용 테이블과 테이블의.. 2022. 2. 25.
2022.02.24 의 기록 => 공부 관련 1) 모던 자바 스트림(Stream) & 입출력 스트림(IO Stream) 2) 금일 배운 내용 복습 3) 스프링 객체지향 CH2 => 파이널 프로젝트 관련 1) UI 회의 ▶ 문제 정리 1. 스트림 관련 정리 > 문제 : 스트림에서 Map(), flatMap()의 차이? > 정리 : 스트림의 스트림을 반환하는 중간연산과 스트림을 반환하는 중간 연산. 스트림의 형태가 배열인 경우 flatMap이 유용 ▶ 공부 내용 Mybatis mapper 엘리먼트 class 속성 : Interface 기반의 맵퍼 파일의 경로를 속성값으로 설정 ⇒ Interface & XML 파일의 경로는 Java 자료형으로 표현 Interface 맵퍼의 장점 : SqlSession 인스턴스로 SQL 명령을 XML 맵퍼.. 2022. 2. 24.
2022.02.20의 기록 ▶ 오늘 실현 가능한 세부 목표 => 공부 관련 1) 검증 받는 날 => 기술 면접, 프로젝트 제출 ▶ 문제 정리 1. Primitive Type만 사용하려는 경향을 피하자 => 작은 객체 타입을 사용하는 습관을 기르자 2. 극단적인 체이닝은 피하라 => 한 줄의 하나의 dot 연산자 사용 => 체이닝보단 메서드로의 분리가 효과적임 3. Getter/Setter/Property를 남용하지 말자 => 객체가 고유 역할을 가지고 있다면, 객체의 속성을 직접 가져오거나 직접 변경할 일이 없어야 함. => 객체에 묻지 말고 메시지를 보내라(Tell Don't Ask) -> 객체끼리 협력하는 경우 정보를 요구하지 말고 행위를 하도록 시켜라. (정보 은닉의 중요성을 강조하는 원칙) ▶ 피드백 > 웬만한건 다 노션에.. 2022. 2. 20.
2022.02.19의 기록 ▶ 오늘 실현 가능한 세부 목표 => 공부 관련 1) 이번 주 배운 개념 정리 다 훑기 O 2) 개인 공부한 CS지식 다 훑고 머리에 넣기 O => 파이널 프로젝트 관련 1) 기획서 작성 > 완료, 디자인 나중에. 2) 화면 설계서 작성 > 화면 상세 요소까지 2022. 2. 19.
2022.02.18의 기록 ▶ 오늘 실현 가능한 세부 목표 => 공부 관련 1) 금일 배운 내용 복습 2) CS 지식 개발 상식 (객체지향 vs 절차지향 & Restful API와 설계 규칙) 3) 자바의 정석 13장 스레드 4) 14장 람다와 스트림 4) MVC 자바 프로그램 => 파이널 프로젝트 관련 1) 팀명 : 필라피트(필라테스&피트니스)? 2) 포지션 (나는 Back) ▶ 수업 공부 관련 MVC 디자인 패턴 JSP 단순 처리 : redirect 이동 응답 : request 속성값으로 결과를 전달 html ⇒ forward 이동 EL pageContext.setAttribute(String attributeName, Object attributeValue) 스코프 객체에 속성명(문자열)과 속성값(인스턴스)을 저장하는 메소드.. 2022. 2. 18.
2022.02.17의 기록 ▶ 오늘 실현 가능한 세부 목표 => 공부 관련 1) 금일 배운 내용 복습 2) CS 지식 개발 상식 코너 3) 자바의 정석 12장 제너릭스(Generics) 4) MVC 적용 시켜 자바 프로그램 => 파이널 프로젝트 관련 1) 안건 회의 요소 생각 2) 구글 크롬 디버깅 공부 ▶ 수업 공부 관련 MVC Design Pattern 클라이어트 요청에 대한 모델 클래스 매핑 설계 ⇒ 모든 모델 클래스는 같은 인터페이스를 상속 받아 동일한 구조로 작성 - 사용성 및 유지보수 효율성 증가 모든 모델 클래스가 반드시 상속 받아야 하는 인터페이스 ⇒ 모델 클래스의 요청 처리 메소드 작성 규칙 제공 ⇒ 요청 처리 메소드 호출 편의성과 유지보수의 효율성 증가 요청 처리 메소드는 request , response 인스턴.. 2022. 2. 17.
2022.02.15의 기록 ▶ 오늘 실현 가능한 세부 목표 => 공부 관련 1) 배운 내용 복습 o 2) 인터페이스에서 메소드를 구현하려면 어떻게 해야 하는지 o 3) SOLID 5원칙 제대로 알기 o 4) 컬렉션 프레임워크란? 요약 설명 o 5) 자바의 정석 객체지향 프로그래밍 2 o 6) 순수 자바로 MVC 패턴 구현을 어떻게 해야 하는지 o => 파이널 프로젝트 관련 1) 파이널 사이트 알아보기 (구체적인 것 강사님께 질문) 2) 구글 크롬 디버깅 공부 ▶ 수업 공부 관련 > JSON 객체에서 배열로 받아올 때 엔터키나 따옴표가 들어가면 에러가 난다. (자바스크립트 객체로 표현할 수 있는 문자들 parse()가 자스 객체로 바꾸지 못함) > 입력 받은 그대로 출력하는게 정석이다. (다른 태그로 바꿔 출력하면 문제가 발생함) .. 2022. 2. 15.
2022.02.14 (개념 정리) ▶ 개인 공부 관련 7. Garbage Collection(가비지 컬렉션)의 동작 방식 Young 영역과 Old 영역은 서로 다른 메모리 구조로 되어 있기 때문에, 세부적인 동작 방식은 다르다. 하지만 기본적으로 가비지 컬렉션이 실행된다고 하면 다음의 2가지 공통적인 단계를 따르게 된다. Stop The World : JVM이 애플리케이션의 실행을 멈추는 작업이다. GC가 실행될 때는 GC를 실행하는 쓰레드를 제외한 모든 쓰레드들의 작업이 중단된다. 당연히 모든 쓰레드들의 작업이 중단되면 애플리케이션이 멈추기 때문에, GC의 성능 개선을 위해 튜닝을 한다고 하면 보통 stop-the-world의 시간을 줄이는 작업을 하는 것이다. Mark and Sweep : Mark: 사용되는 메모리와 사용되지 않는 .. 2022. 2. 15.
2022-02-13의 기록 ▶ 오늘 실현 가능한 세부 목표 => 공부 관련 1) AJAX 개념 정리 복습 2) 선생님께 질문할 내용 정리 및 준비 ▶ 공부 내용 국비 파이널 때 기술들 물어보기 선생님 기준에서는 스프링 부트는 써도 괜찮다고 하셨다. 하지만 스프링 레거시를 쓰면 여러가지 세팅이 필요 (불필요한 세팅이 필요없음 지금 기준에서는 불가능 할듯 싶다. 리액트를 써도 어필은 된다. (우대조건) 하지만 합격보장은 없음. 면접 질문에서 그 부분에서 구체적인 뭘 썼는지, 왜 썼는지를 무조건 물어봄 ⇒ 허투루 쓸거면 안하는게 낫다. 깃을 따로 공부할 필요가 없다? Git Flow라는게 있다. (협업을 위한 도구) ▶ 앞으로의 공부 방법 -> 이해가 안가는 부분 : 인터넷 찾아보기(구라 정보가 많음) ⇒ 한가지만 보지 말자, 여러가지.. 2022. 2. 13.
2022-02-11의 기록 ▶ 오늘 실현 가능한 세부 목표 => 공부 관련 1) AJAX 개념 정리 ▶ 공부 내용 XML & JSON 바이너리 데이터 ⇒ 메타 데이터를 포함하며 0과1의 단순한 나열로 이루어진 파일 ⇒ 해당 파일을 읽을 수 있는 특정 어플에서만 실행 가능 텍스트 데이터 ⇒ 표준화된 문자 표현 방법에 의해 저장된 파일 = 모든 응용 프로그램에서 해석 가능 비구조적 문서 ⇒ 작성자의 스타일에 따라 작성된 문서 ⇒내용과 구조, 표현이 복합되어진 형태 마크업 ⇒ 텍스트 데이터의 구조적 문서 표현 방법 ⇒ 텍스트기반 메타데이터 표현 ⇒ 문서의 논리적인 표현 가능 ⇒ SGML, HTML(웹 출력 전용), XML(확장된 마크업 언어 구조화된 문서를 전송 가능하도록 값을 전달 목적) 등등 ⇒ XML은 파싱이 필요함 (dom 파서.. 2022. 2. 13.
2022.02.10의 기록 ▶ 오늘 실현 가능한 세부 목표 => 공부 관련 1) AJAX 개념 정리 2) 객체지향 책 3단원 읽고 정리 ▶ 공부 내용 AJAX(Asynchronous JavaScript And XML) 동기식 VS 비동기식 ⇒ 동기 방식은 데이터를 처리하기 전까지 다른 작업 수행 불가 비동기는 가능. GET 방식 요청 시 문제점(전달 값이 적은 경우/간단하게 전달할 경우) ⇒ 인터넷 익스플로러는 URL에 한글 전달이 안되므로(브라우저 자체가 자동 파싱이 안됨) 한글 값 전달 시 부호화 처리를 해야 함. POST 방식으로 웹 프로그램을 요청(전달 값이 많은 경우/보안을 요함) ⇒ send 메소드의 매개변수를 사용하여 값 전달 ⇒ 기본은 원시 데이터로 전달(텍스트, multipart/form data → 원시데이터) .. 2022. 2. 10.
반응형