분류 전체보기 130

Enumeration, Iterator

Enumeration Thread에 안전한 구조 / vector, Hashtable에 사용 / 다음 내용이 있는지 확인하는 hasNext(), 그 값을 가져오는 next(), 해당 컬렉션의 값을 삭제하는 remove() 메서드 제공 Iterator은 Thread에 안전하지 않은 구조 / ArrayList, HashSet 에 사용 / 다음 내용이 있는지 확인하는 hasMoreElement(), 그 값을 가져오는 nextElement() 메서드 제공, 해당 컬렉션의 값을 삭제하는 메서드는 없음 장점 Iterator는 모든 컬렉션 프레임워크에 공통으로 사용 가능 컬렉션 프레임워크에서 쉽게 값을 가져오고 제거할 수 있음 2,3개의 메소드만 알면 되어서 사용하기 매우 쉽다 단점은 처음부터 끝까지의 단방향 반복만 ..

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 (1)

목록 웹서버 (Web Server) 웹 어플리케이션 서버 (WAS, Web Application Server) 웹서버, WAS 구성 방법 서블릿 서블릿 컨테이너 서블릿 컨테이너의 동시 요청을 위한 Multi Thread 처리 쓰레드 풀 백엔드 개발자로서 해야 할 것 ( 생각해보면 좋은 내용 ) : SSR 기술, 서버 요청 종류 자바 웹 기술 : Spring boot, Spring MVC, Thymeleaf가 요즘 많이 사용되기 때문에 주로 학습 서블릿 사용하기 http요청에따른 스프링 동작 흐름 HttpRequestServlet 역할 HTTP 요청 메세지를 통해 클라이언트에서 서버로 전달하는 방법 3가지 HttpServletResponse - 기본 사용법 MVC 패턴이란? 실습(서블릿 등록 방법, jsp..

윈도우에서 MySQL Workbench 연결 오류

윈도우에서 MySQL Workbench 연결 오류 1. 우클릭 Edit Connection 2. Manage Server Connections 창 열림 3. Test Connection 클릭 4. 연결 오류 Faild to Connect to MySQL at localhost:3306 with user root Unable to connect to localhost 해결 1. 윈도우 키에서 "컴퓨터 관리" 검색해서 들어간다 2. 왼쪽 목록에서 "서비스 및 응용 프로그램" 하위의 "서비스"를 클릭한다. 3. 오른쪽 서비스 목록에서 MySQL80을 찾아서 실행한다. 4. 다시 MySQL Workbench에서 Test Connection을 해본다.

HTTP 웹 기초

Protocol 컴퓨터와 컴퓨터가 인터넷을 통해서 통신할 때 필요한 통신 규약 TCP/IP 인터넷 환경에서 데이터를 전송하는 통신 규약 TCP와 IP의 특성을 합친 것으로 IP주소체계를 통해 TCP특성을 이용해 신뢰성 높은 데이터 송수신을 보장하는 규약입니다. IP (Internet Protocol) 다른 컴퓨터와 구별할 수 있도록 할당되는 IP주소를 통해 패킷 단위로 네트워크 간 전송하는 규약입니다. 신뢰성과 연결성(연결되어있다는 보장)이 없어 데이터 손실이 발생 할 수 있기 때문에 TCP와 함께 사용합니다. TCP ( Transmission Control Protocol ) IP가 그저 목적지를 제대로 찾아가는 것에 중점을 둔다면 TCP는 3 way handshake 방식을 사용하여 통신하고자 하는 ..

이미 push한 commit 메세지 수정

1. HEAD~1 는 최근 커밋 중 1개를 불러온다는 의미 $ git rebase HEAD~1 -i 2. commit 로그 창에서 수정하고 싶은 메세지 앞 의 pick을 reword로 수정하고 저장합니다. ( esc -> :wq ) 3. 메세지를 수정하고 저장합니다. ( esc -> :wq ) 4. 원격에 덮어쓰기 $ git push --force branch_url -> 메시지가 변경된 커밋 이력이 추가 되고 그 전 커밋 이력이 남아있는 문제가 있음. 내가 잘 못 한 건지 모르겠지만 다음에 다시 해보자

인텔리제이 에러 해결 - Package 'java.lang' is declared in module 'java.base', which is not in the module graph

Package 'java.lang' is declared in module 'java.base', which is not in the module graph IntelliJ 에서 String 이나 기본적인 있는 클래스 파일 참조가 안되고 위와 같은 에러가 발생했을 때 intellij 조치법 1. IntelliJ의 File -> Repair IDE 선택 2. 오른쪽 아래 진행과정에서 Rescan Project Indexes 3. 오른쪽 아래 진행과정에서 Reopen Project 로 intellij 재시작

Spring Boot 환경에서 Quartz Scheduler 사용하기

공부하게 된 이유 배치서버 작업 경험 중 배치서버가 이미 다 구현 된 상태이기 때문에 배치서버에 사용되는 Quartz 라이브러리를 잘 알지 못 해도 문제가 없었던 적이 있다. 배치작업 기능을 추가하는데 있어서 비지니스 로직을 추가하면 되는 상황이었다. 그렇지만 면접 준비를 하면서 작업 했던 환경에 대해서 설명을 요구할 수 있다고 생각해서 Quartz 라이브러리에 대해서 공부 해보기로 했다. 보통 대용량 데이터에 대한 작업을 순차적으로 처리하는데 사용되는 spring batch와 정해진 시간에 지정된 횟수만큼 반복적으로 특정 작업을 실행시키는 스케줄러 라이브러리인 quartz를 같이 사용한다고 한다. 그러나 spring boot 환경에서 spring batch 없이 quartz만 사용하여 batch ser..

spring 기본 요약 (사용 이유, 객체지향, IOC/DI/container, 빈 등록, 의존관계 주입, 스코프 등)

배경 레거시 소스를 파악하거나 프로젝트를 새로 만들 떄 spring에 대한 개념이 부족하면 어려움이 있다고 판단해서 spring에 대해서 공부하기로 하였습니다. 아래는 inflearn에서 김영한 spring 강의를 듣고 추가로 검색하면서 정리한 내용입니다. 목록 [이론] 스프링은 여러 뜻으로 사용됩니다. 스프링을 사용하는 이유는? 객체지향이란? 객체지향에서 다형성이란? 객체 지향 설계의 5가지 원칙 ( SOLID ) IoC, DI 그리고 컨테이너 싱글톤 패턴 컴포넌트 스캔과 의존관계 자동 주입 자동 빈 등록, 수동 빈 등록의 올바른 실무 운영 기준 의존관계 옵션처리 주입 대상이 되는 빈이 2개 이상이라면? 주입 대상이 되는 빈들을 모두 받고 싶을 때 (List, map) 빈 생명주기에 따른 콜백 기능 빈..