URI 와 웹 브라우저 요청 흐름
·
CS 공부
URI란 ?? URI(Uniform Resource Identifier) URI? URL? URN? URI 는 URL 과 URN을 포함한다 URL( Resource Locator) - 위치 / URN(Resource Name) - 이름 URI 단어 뜻 Uniform : 리소스 식별하는 통일된 방식 Resource : 자원, URI로 식별할 수 있는 모든 것(제한 없음) Identifier : 다른 항목과 구분하는데 필요한 정보 URL 분석 ex) https://www.google.com:443/search?q=hello&hl=ko 라고 한다면 scheme://[userinfo@]host[:port][/path][?query][#fragment] 형식에 위 url을 나눌 수 있다 scheme://[user..
[프로젝트] LocalDate 타입의 isBefore()와 isAfter() 사용하여 기간 다르게 출력하기
·
개발 공부/코드복습
* 이 게시물에는 isBefore() isAfter() isEqual() Fetch API Mybatis select 관련 정보 MySQL SELECT 쿼리 정보 를 알 수 있습니다 영업부의 주문 관리 시스템을 만드는 기업 연계 프로젝트를 하면서 요구사항 중에 판매가 기간을 기간 별로 다르게 설정하여 주문을 할 때 납기 요청일에 따라 같은 제품이더라도 그 기간에 해당하는 가격만 나오게 해달라는 요구가 있었다 데이터베이스는 MariaDB를 썼고 우리의 판매가 기간 설정에 대한 데이터 베이스는 아래와 같다 KVV라는 바이어에게 GA0002 제품에 대한 주문이 있을 때 각 기간 별로 가격이 다른 것을 알 수 있다 해당 기능 시연 UI이다(UI가 구려보이는 건 내가 디자인 감각이 없기 때문이다..역시 나는 프론..
<인터넷 네트워크> IP, TCP, UDP, DNS 정리
·
CS 공부
인터넷 네트워크 인터넷 통신 요청을 보내는 클라이언트와 요청을 받고 다시 응답하는 서버라는 두 컴퓨터가 있다고 가정 할 때 두 컴퓨터가 붙어있다면 케이블로 연결해서 전송하고 응답하면 된다 하지만 만약 두 컴퓨터가 멀리 떨어져 있다면 중간에 인터넷이 존재하는데 인터넷에 수많은 망들 중 어떻게 해야 요청을 서버라는 컴퓨터에 전달할 수 있을까 이를 위해서는 IP(인터넷 프로토콜) 에 대한 이해가 필요하다 IP의 역할 지정한 IP 주소에 데이터 전달 패킷 이라는 통신 단위로 데이터 전달 메세지를 그냥 보내는 것이 아니라 IP 패킷에 담아서 보낸다 IP 패킷에는 출발 IP와 목적지 IP 주소가 포함되어 있다 IP 프로토콜의 한계 비연결성 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송(즉 쉽게 컴퓨터가..
빈 생명주기 콜백
·
개발 공부/Spring
* 본 게시글은 스프링 핵심 강의 by 김영한 님의 강의를 참고했습니다 스프링 빈은 간단하게 다음과 같은 라이프사이클을 가진다 객체 생성 -> 의존 관계 주입 초기화는 객체에 필요한 모든 값이 다 연결되어 있고 외부와 연결하기 직전을 얘기함(단순히 객체 생성 x) 스프링은 의존관계 주입이 완료되면 스프링 빈에게 콜백 메서드를 통해서 초기화 시점을 알려주는 다양한 기능을 제공한다 또한 스프링 컨테이너가 종료되기 직전에 소멸 콜백을 준다 스프링빈의 이벤트 라이프 사이클 스프링 컨테이너 생성 -> 스프링 빈 생성 -> 의존관계 주입 -> 초기화 콜백 -> 사용 -> 소멸전 콜백 -> 스프링 종료 객체의 생성과 초기화는 분리하는 것이 좋은데 생성자는 필수정보(파라미터)를 받고, 메모리를 할당해서 객체를 생성한다..
좋은 객체 지향 설계의 5가지 원칙(SOLID)
·
개발 공부/Spring
좋은 객체 지향 설계의 5가지 원칙(SOLID) 클린코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리 SRP : 단일 책임 원칙 OCP : 개방-폐쇄 원칙 LSP : 리스코프 치환 원칙 ISP : 인터페이스 분리 원칙 DIP : 의존관계 역전 원칙 SRP(단일 책임 원칙) 한 클래스는 하나의 책임만 가져야 한다 책임은 문맥과 상황에 따라 다르다 중요한 판단의 기준은 변경이다 변경이 있을 때 파급 효과가 적어야 한다 OCP(개방-폐쇄 원칙) 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다 그러나 문제점이 있는데 MemberRepositoy m = new MemoryMemberRepository(); // 기존 코드 MemberRepository m = new Jdbc..
좋은 객체 지향 프로그래밍이란?
·
개발 공부/Spring
우아한형제들에서 최연소 기술이사를 맡으신 김영한 님이 강의에서 스프링은 객체 지향 프로그래밍을 잘 도와주는 기술이라고 하시며 좋은 객체 지향 프로그래밍에 대해 설명해주셔서 강의를 듣고 잊어버리지 않기 위해 기록하려고 한다 * 본 게시글은 김영한 님의 스프링 핵심 원리 - 기본편 : 좋은 객체 지향 프로그래밍이란? 강의를 듣고 개인적으로 정리한 글입니다 스프링은 자바 언어 기반의 프레임 워크 자바는 객체 지향 언어 인데 스프링은 객체 지향 언어가 가진 강력한 특징을 살려내는 프레임 워크 객체 지향의 특징 - 추상화 - 캡슐화 - 상속 - 다형성 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러개의 독립된 단위, 즉 "객제" 들의 모임으로 파악하고자 하는 것이다. 각각의 ..
<생각기록> 27년차 실리콘밸리 개발자의 인생 이야기 [한기용] 1부
·
IT 관련 영상 메모
https://www.youtube.com/watch?v=nLL409se8sM 내용 정리 창업 했을 때의 마켓 쉐어를 생각했어야 했다(생각보다 너무 작았다) 동종 업계의 움직이는 속도/성장속도가 느렸다 공동 창업을 했을 때 각자의 역할이 있고 분야별로 최종 결정권을 가지게 하는게 맞았다 첫번째 아이디어로는 부족하다 피봇을 해야한다 의견의 불일치를 감정적으로 생각했다(인생의 큰 부분을 각 창업자들이 걸었기 때문) 창업이 망한 후 야후로 이직함(큰 회사를 가야겠다고 생각함) 당시 야후은 검색엔진 시장의 탑이였다 2개의 프로젝트가 성공하면서 승진을 했지만 야후는 망해가고 구글이 업계 탑이 되어 있었다 주위 사람들이 많이 이직하고 회사는 망해갔지만 받는 게 많다 보니 변화를 준 생각을 하지 못했다 그 당시에는 ..
<programmers> 이상한 문자 만들기 자바
·
개발 공부/알고리즘
class Solution { public String solution(String s) { String answer = ""; String[] arr = s.split(" ", -1); // split 메소드 인자값 -1 을 넣으면 공백도 문자열로 인식 // 공백을 기준으로 arr 배열에 s 넣기 int cnt = 1; for (int i = 0; i < arr.length; i++) { for(int j = 0; j < arr[i].length(); j++) { if(j%2 == 0) { answer += arr[i].substring(j, j+1).toUpperCase(); //배열에 담긴 값들 짝수번째 대문자 변환 } else { answer += arr[i].substring(j, j+1).to..