최신 글
-
섹션 8. HTTP 헤더2 - 캐시와 조건부 요
❓ 캐시 기본 동작캐시가 없을 때데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운받아야 한다.인터넷 네트워크는 매우 느리고 비싸다브라우저 로딩 속도가 느리다.느린 사용자 경험캐시 적용캐시 덕분에 캐시 가능 시간동안 네트워크를 사용하지 않아도 된다.비싼 네트워크 사용량을 줄일 수 있다.브라우저 로딩 속도가 매우 빠르다.캐시 시간 초과캐시 유효 시간이 초과하면, 서버를 통해 데이터를 다시 조회하고, 캐시를 갱신한다.이때 다시 네트워크 다운로드 발생 ❓ 검증 헤더와 조건부 요청1캐시 유효 시간이 초과해도, 서버의 데이터가 갱신되지 않으면304 Not Modified + 헤더 메타 정보만 응답(바디X)클라이언트는 서버가 보낸 응답 헤더 정보로 캐시의 메타 정보를 갱신클라이언트는 캐시에 저장되어 있는..
-
섹션 7. HTTP 헤더1 - 일반 헤더
❓ HTTP 헤더 개요용도HTTP 전송에 필요한 모든 부가정보표준 헤더가 너무 많음필요시 임의의 헤더 추가 가능RFC723x 변화표현 = 표현 메타데이터 + 표현 데이터헤더 특징메세지 본문을 통해 표현 데이터 전달메세지 본문 = 페이로드표현은 요청이나 응답에서 전달할 실제 데이터표현 헤더는 표현 데이터를 해석할 수 있는 정보 제공 ❓ 표현Content-Type : 표현 데이터의 형식미디어 타입, 문자 인코딩예)text/html; charset=utf-8application/jsonimage/pngContent-Encoding : 표현 데이터의 압축 방식표현 데이터를 압축하기 위해 사용데이터를 전달하는 곳에서 압축 후 인코딩 헤더 추가데이터를 읽는 쪽에서 인코딩 헤더의 정보로 압축 해제예)gzipdefla..
-
섹션 6. HTTP 상태코드
❓ 상태 코드클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능1xx (Informational) : 요청이 수신되어 처리중2xx (Successful) : 요청 정상 처리3xx (Redurection) : 요청을 완료하려면 추가 행동이 필요4xx (Client Error) : 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음5xx (Server Error) : 서버 오류, 서버가 정상 요청을 처리하지 못함 ❓ 2xx - 성공200 : 성공201 : 요청 성공해서 새로운 리소스가 생성생성된 리소스는 응답의 Location 헤더 필드로 식별202 : 요청 접수되었으나 처리가 완료 되지 않았음배치 처리 같은 곳에서 사용204 : 서버가 요청을 성공적으로 수행했지만, 응답 페이로드 본..
-
섹션 5. HTTP 메서드 활용
❓ 클라이언트에서 서버로 데이터 전송데이터 전달 방식은 크게 2가지쿼리 파라미터를 통한 데이터 전송GET메세지 바디를 통한 데이터 전송POST, PUT, PATCH정적 데이터 조회쿼리 파라미터 미사용이미지, 정적 텍스트 문서조회는 GET 사용정적 데이터는 일반적으로 쿼리 파라미터 없이 리소스 경로로 단순하게 조회 가능동적 데이터 조회쿼리 파라미터 사용주로 검색, 게시판 목록에서 정렬 필터조회는 GET 사용HTML Form 데이터 전송HTML Form submit 시 POST 전송Content-Type : application/x-www-form-urlencoded 사용form의 내용을 메세지 바디를 통해서 전송(key=value, 쿼리 파라미터 형식)전송 데이터를 url encoding 처리HTML Fo..
스프링 핵심 원리 - 기본편
-
스프링 핵심 원리 - 기본편 # Section 9
❓ 빈 스코프스프링의 다양한 스코프싱글톤 : 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프프로토타입 : 프로토타입 빈의 생성과 의존관계 주입까지만 관여하는 스코프웹 관련 스코프request : 웹 요청이 들어오고 나갈때 까지 유지됨session : 웹 세션이 생성되고 종료될 때 까지 유지 됨application : 웹의 서블릿 컨텍스트와 같은 범위로 유지 됨❓ 프로토타입 빈@Scope("prototype")@Componentpublic class HelloBean {} 핵심은 프로토타입 빈을 생성하고, 의존관계 주입, 초기화까지만 처리한다는 것.이후엔 프로토타입 빈을 관리하지 않음 따라서 @PreDestroy 같은 종료 메서드를 호출 하지 않음 ❓ 웹 스코프웹 환경에서..
-
스프링 핵심 원리 - 기본편 # Section 8
❓ 빈 생명주기 콜백 시작스프링 빈은 간단하게 다음과 같은 라이프사이클을 가진다스프링 컨테이너 생성 -> 스프링 빈 생성 -> 의존관계 주입 -> 초기화 콜백 -> 사용 -> 소멸전 콜백 -> 스프링 종료초기화 콜백 : 빈이 생성되고, 빈의 의존관계 주입이 완료된 후 호출소멸전 콜백 : 빈이 소멸되기 직전에 호출 빈 생명주기 콜백의 3가지 방법1. 인터페이스 InitalizingBean, DisposableBeanpublic class NetworkClient2 implements InitializingBean, DisposableBean { private String url; public NetworkClient2() { System.out.println("생성자 호출, url..
-
스프링 핵심 원리 - 기본편 # Section 7
❓ 다양한 의존관계 주입 방법의존관계 주입 방법생성자 주입수정자 주입 (setter 주입)필드 주입일반 메서드 주입생성자 주입생성자를 통해서 의존 관계를 주입특징생성자 호출시점에 딱 1번만 호출되는 것이 보장불편, 필수 의존관계에 사용@Component public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discount..
-
스프링 핵심 원리 - 기본편 # Section 6
❓ 컴포넌트 스캔설정 코드 @Configuration @ComponentScan( excludeFilters = @Filter(type = FilterType.ANNOTATION, classes = Configuration.class)) public class AutoAppConfig { } 사용 할 때// @Component 어노테이션으로 등록 가능@Componentpublic class MemoryMemberRepository implements MemberRepository {} @Componentpublic class RateDiscountPolicy implements DiscountPolicy {} 컴포넌트 스캔과 자동 의존관계 주입이 동작하는 원리 @ComponentScan 은 ..
HTTP 웹 기본 지식
-
섹션 8. HTTP 헤더2 - 캐시와 조건부 요
❓ 캐시 기본 동작캐시가 없을 때데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운받아야 한다.인터넷 네트워크는 매우 느리고 비싸다브라우저 로딩 속도가 느리다.느린 사용자 경험캐시 적용캐시 덕분에 캐시 가능 시간동안 네트워크를 사용하지 않아도 된다.비싼 네트워크 사용량을 줄일 수 있다.브라우저 로딩 속도가 매우 빠르다.캐시 시간 초과캐시 유효 시간이 초과하면, 서버를 통해 데이터를 다시 조회하고, 캐시를 갱신한다.이때 다시 네트워크 다운로드 발생 ❓ 검증 헤더와 조건부 요청1캐시 유효 시간이 초과해도, 서버의 데이터가 갱신되지 않으면304 Not Modified + 헤더 메타 정보만 응답(바디X)클라이언트는 서버가 보낸 응답 헤더 정보로 캐시의 메타 정보를 갱신클라이언트는 캐시에 저장되어 있는..
-
섹션 7. HTTP 헤더1 - 일반 헤더
❓ HTTP 헤더 개요용도HTTP 전송에 필요한 모든 부가정보표준 헤더가 너무 많음필요시 임의의 헤더 추가 가능RFC723x 변화표현 = 표현 메타데이터 + 표현 데이터헤더 특징메세지 본문을 통해 표현 데이터 전달메세지 본문 = 페이로드표현은 요청이나 응답에서 전달할 실제 데이터표현 헤더는 표현 데이터를 해석할 수 있는 정보 제공 ❓ 표현Content-Type : 표현 데이터의 형식미디어 타입, 문자 인코딩예)text/html; charset=utf-8application/jsonimage/pngContent-Encoding : 표현 데이터의 압축 방식표현 데이터를 압축하기 위해 사용데이터를 전달하는 곳에서 압축 후 인코딩 헤더 추가데이터를 읽는 쪽에서 인코딩 헤더의 정보로 압축 해제예)gzipdefla..
-
섹션 6. HTTP 상태코드
❓ 상태 코드클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능1xx (Informational) : 요청이 수신되어 처리중2xx (Successful) : 요청 정상 처리3xx (Redurection) : 요청을 완료하려면 추가 행동이 필요4xx (Client Error) : 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음5xx (Server Error) : 서버 오류, 서버가 정상 요청을 처리하지 못함 ❓ 2xx - 성공200 : 성공201 : 요청 성공해서 새로운 리소스가 생성생성된 리소스는 응답의 Location 헤더 필드로 식별202 : 요청 접수되었으나 처리가 완료 되지 않았음배치 처리 같은 곳에서 사용204 : 서버가 요청을 성공적으로 수행했지만, 응답 페이로드 본..
-
섹션 5. HTTP 메서드 활용
❓ 클라이언트에서 서버로 데이터 전송데이터 전달 방식은 크게 2가지쿼리 파라미터를 통한 데이터 전송GET메세지 바디를 통한 데이터 전송POST, PUT, PATCH정적 데이터 조회쿼리 파라미터 미사용이미지, 정적 텍스트 문서조회는 GET 사용정적 데이터는 일반적으로 쿼리 파라미터 없이 리소스 경로로 단순하게 조회 가능동적 데이터 조회쿼리 파라미터 사용주로 검색, 게시판 목록에서 정렬 필터조회는 GET 사용HTML Form 데이터 전송HTML Form submit 시 POST 전송Content-Type : application/x-www-form-urlencoded 사용form의 내용을 메세지 바디를 통해서 전송(key=value, 쿼리 파라미터 형식)전송 데이터를 url encoding 처리HTML Fo..
AutoBot 프로젝트
-
AutoBot2 | 롤 유틸리티 프로그램 (Version_2.4.1) - 개발 중지
리그 오브 레전드 타사 응용 프로그램 규칙support-leagueoflegends.riotgames.com/hc/en-us/articles/225266848* 위 규칙에 준수하여 만들었습니다. 다운로드사용법공지이전 공지더보기-10월 5일 작성-* 추석 명절로 저도 한동안 휴식을 했습니다. 댓글을 빠르게 확인 못한 점 죄송합니다! * 10월 5일 이후 AutoBot의 추가적인 기능은 '댓글'을 통해서 받은 피드백에 한해서 제작할 거 같습니다. 제 생각보다 많은 분들이 댓글을 달아주시고 피드백해주셔서 좀 더 열정 있게 제작하는 거 같습니다.항상 감사합니다. (_ _)- 10월 15일 작성-버전 2.3을 끝으로 프로젝트를 종료합니다!따라서 오픈 소스로 전환합니다. (이후 포스팅하겠습니다.) 실행에 미치는 오..
-
AutoBot | 개발 과정 포스팅 #5 - End
포스팅이 끝났네요. 뭐.. 대단한 프로젝트냐 싶어서 코드 소스만 공개하는 게 좋을 거 같았지만 개발 언어에 입문하시는 분들도 있을 거 같아서 주요 기능을 처음부터 만드는 형식으로 구성했습니다. 포스팅 과정을 따라오시면 5개의 프로젝트를 만들수 있습니다. 매우 부족한 내용이니.. 참고차! 봐주시면 감사하겠습니다. (_ _) 프로젝트 발전 과정 초기 프로젝트는 OpenCV를 공부하기 위해 만들었습니다. 이미지 서칭 방식으로 기능을 구현했는데 리소스 소모가 매우 컸죠. UI 또한 구성하지 않았습니다. 그러다 좀 더 UI를 다듬고 API 공부를 할겸 KakaoTalk기능을 구상했었죠. 하지만 아직도 OpenCV를 이용한 기능이여서 리소스 소모가 크고 UI 간 동작 방식이 매우 불편했습니다. 사실 공부할 겸 가볍..
-
AutoBot | 개발 과정 포스팅 #4 - Web Crawler C#
목차 - Crawler - 크롤러란? - 프로젝트 제작 - 끝으로 다운로드 들어가기 전 velog.io/@mowinckel/%EC%9B%B9-%ED%81%AC%EB%A1%A4%EB%A7%81-I 🏭 '웹 크롤러' 좀 그만 만들어라 아무튼 그만 만들어라. velog.io 크롤러에 대한 칼럼(?)입니다. 기본적인 크롤러의 설명도 자세히 나와있고 무분별한 크롤러 포스팅에 대한 비판적인 시선도 나와있습니다. 개발 과정 포스팅을 하면서 저의 부족한 점 또한 많이 발견해서.. 뜨끔했던 포스팅이네요. 한 번씩 읽어보는 것도 좋을 거 같습니다. 저 또한 공부하며 만든 프로젝트입니다. 많이 부족하고 부실한 코드지만 조금이나마 도움이 됐으면 하는 마음에 포스팅합니다! 최대한 이해하기 쉽게 작성했지만 부족한 점은 댓글로 남..
-
AutoBot | 개발 과정 포스팅 #3 - Process, Font Awesome UI C#
다운로드 들어가기 전 [UI 참고 영상] www.youtube.com/watch?v=QTWKUkiEqpQ 저 또한 공부하며 만든 프로젝트입니다. 많이 부족하고 부실한 코드지만 조금이나마 도움이 됐으면 하는 마음에 포스팅합니다! 참고했던 유튜브 영상을 링크로 남깁니다. 최대한 이해하기 쉽게 작성했지만 부족한 점은 댓글로 남겨주세요! 피드백을 받고 수정하겠습니다! Process? '프로세스'를 설명하기 위해선 '프로그램'과 차이를 설명하면 조금 쉽게 접근이 가능합니다. '프로그램'자체는 생명이 없습니다. 프로그램은 보조 기억장치(하드디스크, SSD)에 존재하며 실행되기를 기다리는 명령어(코드)와 정적인 데이터의 묶음입니다. 이 프로그램의 명령어와 정적 데이터가 메모리에 '적재'되면 생명이 있는 '프로세스'가..
MySQL
-
MySQL로 배우는 데이터베스 - 03장 문제 풀이
- 6월 17일 [ 문제 08번 추가 ] - 6월 18일 [ 문제 09번 추가 ] - 6월 19일 [ 문제 10번 추가 ] 01. 마당서점의 고객이 요구하는 다음 질문에 대해 SQL 문을 작성하시오. -- (1) 도서번호가 1인 도서의 이름 select bookname from book where bookid = 1; -- (2) 가격이 20,00원 이상인 도서의 이름 select bookname from book where price >= 20000; -- (3) 박지성의 총 구매액 select sum(saleprice) from orders where custid = (select custid from customer where name = "박지성"); -- (4) 박지성이 구매한 도서의 수 sel..
-
MySQL로 배우는 데이터베스 - 04장 문제 풀이
01. 다음 내장 함수의 결과를 적으시오. select abs(-15); -- 15 : 절대값 select ceil(15.7); -- 16 : '정수'로 올림 select cos(3.14159); -- -1 : 코사인값 select floor(15.7); -- 15 : '정수'로 버림 select log(10, 100); -- 2 : '자연로그'값 계산 select mod(11, 4); -- 3 : 11 % 4 = 3 '나머지 계산' select power(3, 2); -- 9 : 3의2승 '지수 계산' select round(15.1); -- 15 : '정수'로 반올림 select sign(-15); -- -1 : 부호 반환 양수면 1, 음수면 -1 -- select tranc(15.7); tranc ..
-
MySQL로 배우는 데이터베스 - 04장 책 정리
01. 내장 함수 1. SQL 내장 함수 SQL 내장 함수는 상수나 속성 이름을 입력 값으로 받아 단일 값을 결과로 반환한다. 모든 내장 함수는 최초에 선언될 때 유효한 입력 값을 받아야 한다. 숫자 함수 문자 함수 s : 문자열, c : 문자, n : 정수, k : 정수 날짜 ' 시간 함수 2. NULL 값 처리 null은 아직 지정되지 않은 값을 말한다. 0, 빈문자, 공백 등과 다른 특별한 값임을 명심해야 된다. Null 값에 대한 연산과 집계 함수 null + 숫자 연산의 결과는 null이다. 집계 함수를 계산할 때 null이 포함된 행은 집계에서 빠진다. 해당되는 행이 하나도 없을 경우 snum, avg 함수의 결과는 null count 함수의 결과는 0 Null 값 확인하기 - Is Null,..
-
MySQL로 배우는 데이터베스 - 03장 책 정리
3. 데이터 조작어 (DML : data manipulation Language) 기본 검색 // book 테이블 검색 select * from book; 비교 검색 // book테이블에 price가 20000미만 검색 select * from book where price = 10000 and price = 20000; 정렬 - 오름 차순 select * from book order by bookname; 정렬 - 내림 차순 select * from book order by bookname desc; 정렬 - 복합 select * from book order..
코딩 테스트
-
2021 카카오 채용연계형 인턴쉽 코딩 테스트 후기
안녕하세요! 이번에는 카카오 코딩 테스트 후기를 포스팅해보려고 합니다. 저번 네이버 코테 후기와 동일하게 자세한 내용은 보안상 적어드릴 수 없기 때문에 느낀 점 위주로 적어볼까 합니다. 준비 기간? 네이버 코테를 준비하면서 계속 알고리즘 공부를 했습니다. 2주 정도 준비를 했던 거 같네요. 네이버 때 아쉬움이 많이 남아서 열심히 공부했던 거 같습니다. 시험 장소? 네이버 코테와 동일하게 '프로그래머스'에서 테스트를 진행했습니다. 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 다행히도 외부 IDE, 검색 등 제약이 없었고 테스트 장소 또한 크게 제약을 두지..
2021.05.08 22:30 -
2021 네이버 코딩 테스트 후기
오랜만에 포스팅이네요! 학원도 끝나고 슬슬 이력서 넣어보면서 취업준비 중입니다. (빨리 취업하고 싶다..) 이번에 네이버에서 대규모 채용이라는 뉴스와 함께 신입 채용을 하고 있어서 1차 서류를 지원했었습니다. 다행히 1차는 큰 문제없이 합격해서 2차 코딩 테스트를 보게 됐죠. 시험에 대한 자세한 내용은 보안상 적어드릴 수 없기에 최대한 제 경험으로만 적어보려고 합니다. 준비 기간? 사실 이번 1차 합격 발표 후 부랴부랴 코딩 테스트를 준비했는데 5일 정도밖에 시간이 없었습니다. 대기업을 목표로 취업 준비를 하고 있지 않아서 '코딩 테스트'를 처음으로 봤었는데 아쉬움이 많이 남았네요. 시험 장소? 온라인으로 진행됐습니다. 많은 기업에서 채택하고 있는 '프로그래머스'라는 곳에서 테스트를 진행했는데 프로그래머..
2021.04.26 14:05