이 글을 읽고 있는 분들은 우선 국비지원 KDT ( K digital training ) 백앤드 트랙 ,키워드로 들어오실 분이 많을것이다. 일단 결론부터말하자면 앨리스 클라우드 트랙 백앤드로 취업하기에 강력 추천한다 이유 : 나 취업함 ( //심지어 나는 가족에게 앨리스 추천해서 동생이 듣고있음 ㅋㅋㅋㅋ AI 트랙이긴한데, 프론트 +백앤드 + AI 다 해서 엄청 고생중 ㅋㅋㅋ ) 이 게시글은 수료후 후기 작성시 네이버 3만원 포인트도 제공 에 포함된다. 그러나 3만원...솔직히 요즘에 김밥 3500원 시대인데 3만원이면 외식 3번하면 없다 그렇게 큰돈도 아니고 단순히 후기 3만원때문에 적으면 이렇게 열심히 적을 필요도 없다 그러니 백퍼센트 솔직하게 적고 있다. 결론에 ..
[ 01 Spring JPA ] 01 ORM 이란 ? • Object Relational Mapping(객체 - 관계 - 매핑) • 어플리케이션 객체와 관계형 데이터베이스의 데이터를 매핑해주는 도구 • 객체 지향 프로그래밍은 클래스를 사용, 관계형 데이터베이스는 테이블을 사용 • 대표적인 ORM으로는 Hibernate, JPA 등이 존재 ORM 사용 이유 객체 모델과 관계형 모델 간의 불일치 존재 객체 지향 프로그래밍은 클래스를 이용 관계형 데이터베이스는 테이블을 이용 데이터베이스 접근을 프로그래밍 언어의 관점에서 접근 ORM을 이용해서 객체 간의 관계를 바탕으로 SQL을 자동 생성하여 불일치 해결 ORM의 장점 직관적인 코드로 데이터를 조작할 수 있음 개발자가 비즈니스 로직에 집중할 수 있음 부수적인 ..
02 Spring JDBC JDBC API를 사용했을 때 불편한 부분 반복되는 코드 연결부터 자원의 반납까지 모든 부분의 관리 필요 예외처리로 인해서 코드 복잡도 상승 Jdbc Template JDBC 코어 패키지의 중앙 클래스 JDBC와 같은 라이브러리로 사용 가능 implementation ‘org.springframework.boot:spring-boot-starter-jdbc’ Spring 에서 개발자가 JDBC를 쉽게 사용할 수 있도록 도와주는 클래스 JDBC Template 을 사용하면 해결되는 부분 구조적인 반복 해결 손쉬운 Transaction 처리 쉽게 자바 객체로 매핑 가능 구조적인 반복을 해결 JDBC API를 사용할 때 요청 시 다음 과정이 진행된다. try-catch 문 생성 Co..
01 Spring JDBC 01 Entity, DTO , DAO, Repository DTO DAO Repository Spring 서비스에서의 사용 이 이미지는 전형적인 서버 측 응용 프로그램의 구성 요소를 보여주는 고수준 아키텍처 다이어그램입니다. 아래는 구성 요소와 그들 간의 흐름에 대한 설명입니다: 왼쪽에는 "Client"로 레이블이 지정된 녹색 사각형이 있습니다. 이는 서버 측 응용 프로그램과 상호 작용하는 사용자 인터페이스 또는 외부 시스템을 나타냅니다. "Client"에서 "Controller"로 향하는 파란색 화살표가 있습니다. 이 화살표는 "DTO"로 레이블이 지정되어 있습니다. DTO는 데이터 전송 객체를 나타내며, 소프트웨어 응용 프로그램 하위 시스템 간에 데이터를 전송하는 데 사용되..
[ 웹서비스 게시판 만들어보자 ] : 도메인 생성 : -> 코드로 객체를 만들기 board / post / comment 만들면됨 계층별로 나눈다 -> 객체가 각 폴더별로 나누어져서 폴더가 api 계층/ 서비스계층 / 데이터엑세스 계층을의미함 ) 처음에 스프링 부트 주소창에 start.spring.io 에서 dependencies 로 thymeleaf 추가한다음 . 인텔리제이에서 resources/ templates에서 index.html 입력한뒤에 거기에 html 코드 작동하게 작성한다음 우리가 스프링프로젝트 시작하고 localhost:8080/index로 접속하면 우리가 작성한 html이 뜨는것을 SSR ( 서버사이드렌더링) 이라고함 , . view 를 통해 화면에 뜨게한다 ← 예를 들어서 ..
[ 1차 프로젝트 회고 ] 프로젝트 목표: 웹서비스 개발 기간 : 1월 8일 ~ 1월 21일 ( 2 주 ) 팀원: 5명 후기 : 웹서비스 를 만들어보는 1차 프로젝트가 종료되었다. 아쉬움이 너무 많이 남는다. 프로젝트는 총 2주로 진행되었고, 시작은 첫주 월요일이였다.첫 주, 수요일까지 팀장을 결정해서 팀프로젝트가 진행 됐어야 했다. 저번 스터디 팀 프로젝트때 팀장을 하며 나의 부족함을 많이 느꼈었기에 이번에는 꼭 팀원으로만 있으려고 다짐했었다. 그러나 수요일이 지나고 목요일이 되었지만 아무도 팀장을 하신다는 분이 없었고 우리 팀 그룹 채팅방은 조용햇다. 아무런 팀 작업 진전이 었었고 이미 다른 팀들은 팀활동을 시작해서 개발에 들어간 단계였다. 나는 어쩔수 없이 또다시 팀장을 맡았..
01 Spring MVC : spring mvc에 대해서 이해하고 API를 만들어봅시다. MVC Model 1 아키텍처 비즈니스 로직이 늘어날때 대응하기위해 필요한 수많은 view 를 위해서 jsp 가 함께 추가되면서 불필요한 jsp 를 생성하게 되는게 문제였다. +-----------------------------------------+| 사용자 클라이언트(User Client) || - 웹 브라우저, 모바일 애플리케이션 등 || - View(Controller 포함)로부터의 요청을 || 보내고, 사용자 인터페이스(UI)를 통해 || 상호작용 |+---------------------------------..
[ Logging ]01 스프링 Logging 항목세부 내용Error메시지, 스택 추적, 에러 발생했을 때 애플리케이션이 실행하고 있던 작업Debugging디버깅시 필요한 세부 추적 정보. 적용되는 변수 값, 메서드 등 실행에 대한 세부 정보주요 이벤트로그에 저장하고 싶은 중요 이벤트.엔티티 생성, 유저 로그인 성공, 작업 실행 등어디에 기록할 것인가 ? 어떻게 기록할 것인가 - 로깅 레벨항목세부 내용ERROR즉시 대응해야 할 에러 레벨 로그, 대응하지 않을 경우, 애플리케이션 동작 중지 등 심각한 장애를 겪을 수 있음.WARN상황에 따라 잠재적으로 위험할 수 있을 때, 예외 처리 등INFO로그에 저장하고 싶은 중요 애플리케이션 이벤트, 운영 참고 정보DEBUG개발 단계에서 사용, 디버깅이 가능하도록 ..
[ 스터디 종료 ] 팀 스터디가 종료 되었다. 정규 교육과정이 스프링부트에 진입하면서 스터디와 병행하는게 힘들어서 제대로 작업을 못했고아쉬운 부분이 많았지만 아무튼 스터디 발표까지 종료되었다. https://www.youtube.com/watch?v=ZG7CVP1y20E 그래도 발표 영상으로 찍어서 합쳐놓으니 그래도 완성했다는 느낌이 나서 뿌듯하다. 내가 하고싶었던 부분인 localStorage를 마치 디비처럼 json으로 처리하는부분을 제대로 적용하지 못해서 너무 아쉬웠다. 그리고 팀장으로 팀원들을 격려하고 이끌고 합께 스터디를 하는게 생각보다 힘들었다. 오프라인 모임을 한주정도 잡았었는데 다들 오프라인 모임장소로부터 거리가 많이 멀어서,... 심지어 나도 왕복4시간이라 오프라인 모임은 득보다는 ..
[ Sprint JDBC ]01 - Entity, DTO , DAO,Repository Entity:Entity는 데이터베이스의 테이블에 매핑되는 객체입니다. 보통 데이터베이스의 각 열(column)이 객체의 속성(property)에 매핑되고, 각 행(row)은 해당 객체의 인스턴스가 됩니다. 예를 들어, 데이터베이스의 '사용자' 테이블이 있다면, 사용자 정보를 담는 User 클래스가 Entity가 될 수 있습니다.Entity는 보통 데이터베이스와 직접적으로 연관되어 있고, 비즈니스 로직을 포함하지 않습니다.DTO (Data Transfer Object):DTO는 계층간 데이터 교환을 위한 객체로, 서로 다른 계층(controller, service, repository 등) 간에 데이터 전달을 위해 사..
스프링 프레임 워크 특징02 스프링 프레임 워크의 특징POJOPlain Old Java Object다른 기술은 사용하지 않고 순수 Java만을 통해서 생성한 객체 == Java및 Java 스펙에 정의된 기술만을 사용POJO의 반대되는 상황외부 라이브러리를 import 하여 상속 받아 객체 생성상속 받은 객체의 변경 발생해당 기술을 사용하고 있는 모든 객체 코드 변경 필요외부 모듈에 직접적으로 의존하기 때문에 발생하는 문제 POJO의 장점특정 규약의 변화에 얽매이지 않고 유연하게 변화와 확장에 대처가능객체지향 설계를 제한 없이 적용 가능코드가 단순해지고 테스트와 디버깅 용이제어 역전(IoC, Inversion of Control)객체의 생명주기 관리를 외부 (Spring 컨테이너 , Ioc 컨테이너)에 위..
스프링프레임워크01 스프링 프레임워크 소개스프링 프레임 워크란? 자바 언어를 이용해 엔터프라이즈급 개발을 편리하게 만들어주는 오픈소스 경량급 애플리케이션 프레임 워크오픈소스 : 스프링 프레임워크는 모든사람에게 공개, 어떤 기업과 개인들 모두가 사용가능, 그래서 많은 사람들에게 검증되어있다.경량급: 스프링이전에도 많은 프레임 워크가 존재했지만 다른 기술에 비해서 개발자가 작성해야할 코드가 적다.애플리케이션 프레임워크 : 애플리케이션을 개발할때 대부분의 업무분야와 대부분의 기술의 뼈대를 제공해준다. 웹프레임워크란? 웹 + 프레임워크 웹서비스에 필요한 기능들을 제공해주는 다양한 도구들의 모임 웹프레임워크를 사용하는 이유웹서비스를 구성하기 위해서는 매우 많은 기능이 필요함이러한 기능들을 하나씩 직접 만드는것에..
01 자바스크립트 함수가 실행되는 과정자바스크립트 코드의 실행 1자바스크립트 엔진은 코드가 없어도 실행 환경(실행 컨텍스트)을 초기화한다.스코프(scope)는 코드가 현재 실행되는 환경, 맥락(context)을 의미한다.this 포인터, 스코프에 저장된 변수들, 스코프 체인 등이 환경에 포함된다.this 포인터의 경우, 글로벌 스코프에서는 window를 가리킨다.자바스크립트 코드의 실행 2함수가 실행되면, 함수 스코프에 따라 환경이 만들어진다.this, 함수 스코프의 변수들, 그리고 스코프 체인이 형성된다.스코프 체인을 따라 글로벌 환경에 도달한다자바스크립트 코드의 실행 3객체의 메서드의 경우, 메서드 환경의 this는 해당 객체를 가리키게 된다.하지만 this가 가리키는 것은 환경에 따라 변할 수 있다..
[ 리눅스기초 ] 리눅스의 세계로 리눅스 파일 시스템 알고 쓰는 리눅스 명령어 프로세스와 네트워크 리눅스의 세계로 , 리눅스 소개 리눅스의 특징 및 종류 우분투 리눅스 기초 명령어 GUI vs CLI 패키지 관리자- apt Root 리눅스 소개 리눅스는 리누스 토발즈(Linus Torvalds)에 의해 만들어진 컴퓨터 운영체제 자유 소프트웨어와 오픈 소스 개발의 가장 유명한 표본 GNU 프로젝트의 일환 GNU 프로젝트 : Gnu is not unix 유닉스 운영체제를 여러 회사에서 각자 개발후 서로 공유하지 않는 문화에 반발하여 생김 리눅스의 구조 +---------------------+ | 응용 프로그램 | +---------------------+ | 쉘 ..
[ 자바스크립트 소개 ] [ 01 자바스크립트 ]목차1 자바 스크립트2 자바스크립트의 변수3 변수 데이터 확인 방법4 자바 스크립트 데이터 타입 01 자바스크립트웹 / 서버/ iot등 다양한 분야에서 활용할 수 있는 프로그래밍 언어02 자바스크립트의 변수var value 라고 변수 선언가능var fruit = "apple";Console.log(fruit); // apple 출력//변수명은 숫자로 시작할 수 없음var 1Str // 변수명은 최대한 자세하게 작성var randomNumber; // 의미가 불명확하게 하면안된다.var tMAX 선언데이터 변경변수 생성 시 주의 사항자바스크립트 사용방법변수 데이터 확인 방법우클릭 후 크롬 개발자 검사 or F12 03 자바스크립트 데이터 타입String : ..
[ 데이터 베이스 ] 데이터 베이스 용어 레코드 (Record): 테이블에서 하나의 행(row)을 나타냅니다. 레코드는 테이블에 저장된 개별 데이터 항목입니다. 각 레코드는 여러 개의 필드(열)로 구성되어 있습니다. 행 (Row): 테이블에서 하나의 레코드를 나타냅니다. 행은 테이블에 저장된 데이터의 개별 인스턴스를 나타내며, 각 행은 여러 열(속성)의 값을 가집니다. 속성 (Attribute): 테이블의 각 열(column)을 의미합니다. 속성은 테이블에 저장된 데이터의 특정 유형의 정보를 나타내며, 각 속성은 해당 속성에 대한 값들을 포함합니다. 필드 (Field): 레코드 내에서 속성의 한 인스턴스를 나타냅니다. 행(레코드)을 구성하는 각 열의 값은 필드라고도 불립니다. 열 (Column): 테이..
[ map ] [ map 컬렉션 ] interface map 자체가 인터페이스이다. JSON이 map 형식이다. 메소드Put(key, value ) 리턴타입 : ValueType Key 에 대응하는 value를 삽입하거나,이미있다면 갱신한다. get리턴타입 : ValueType Key에 해당하는 value를 반환한다. containsKey리턴타입 : Boolean 파라미터로 넘겨준 key가 map에 있는지 확인하여 반환한다. remove리턴타입 : ValueType Key에 해당하는 값을 삭제하고, 반환한다. keySet리턴타입 : SetMap에 있는 key 종류를 set컬렉션으로 반환한다. Map 컬렉션 구현체 HashMap 해시 함수를 활용한 자료구조 "key"와 "value"가 존재 K..
[HTML/CSS 기초 ] 1. 웹사이트에 정보와 디자인을 입혀보자 -> HTML, CSS 란? -> 웹사이트의 레이아웃 -> 웹사이트의 움직임 -> 모바일에 대응하는 웹사이트 -> Contents 1) 웹을 구성하는 요소 -> HTML , CSS , JavaScript 2) HTML 주요 태그 살펴보기 -> HTML : Hyper Text Markup Language -> 태그명 : HTML이 갖고 있느 고유의 기능 형태로 입력 -> 컨텐츠 : 열린 태그와 닫힌 태그 사이에 있는 내용물 -> 속성 : HTML 태그가 갖고 있는 추가 정보 -> 속성값 : 어떤 역할을 수행할지 구체적인 명령을 진행하는 것 -> HTML 문서의 기본 구조 - HTML5라는 신조어로 문서를 선언하는 태그 - ... HTML ..
배열 선언 자바에서의 배열선언은 아래와 같이 한다. String[] stringValue = new String[10]; 위 그림의 (1) 부분의 String[] 에서 String[10] 으로 하면 안 된다. 왜냐하면 선언 되는 시점은 할당되는 사이즈를 미리 알 수 없기 때문이다. 그래서 자바에서 배열 사이즈의 결정은 (2)부분의 직접 new 해주는 부분에서 10으로 지정해주게 된다. 배열의 길이 자바에서 배열의 길이는 아래와 같이 가져올 수 있다. String[] stringArray = new String[10]; int length = stringArray.length; 배열의이름.length 다차원 배열 2차원 배열의 선언과 할당 방법 ( 1 ) 선언과 동시에 할당 int[][] twoDimens..