전체 글

· Spring
[Spring] 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 섹션3 서블릿, JSP, MVC 패턴 ◼️ 회원 관리 웹 애플리케이션 요구사항 회원 도메인 모델 @Getter @Setter public class Member { private Long id; private String username; private int age; public Member() { } } 회원 저장소 /** * 동시성 문제가 고려되어 있지 않음, 실무에서는 ConcurrentHashMap, AtomicLong 사용 고려 */ public class MemberRepository { private static Map store = new HashMap(); private static long sequence = 0L; p..
· Spring
[Spring] 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 섹션2 서블릿◼️ Hello 서블릿@ServletComponentScan: 스프링 부트는 서블릿을 직접 등록해서 사용할 수 있도록 @ServletComponentScan 을 지원@ServletComponentScan // 서블릿 자동 등록@SpringBootApplicationpublic class MvcLecture1Application { public static void main(String[] args) { SpringApplication.run(MvcLecture1Application.class, args); }} servlet http 요청이 오면 Servlet Container가 Request,Respo..
· Spring
[Spring] 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 섹션1 웹 애플리케이션 이해 ◼️ 웹 서버, 웹 애플리케이션 서버 웹은 HTTP 기반이며, HTTP 메시지에 모든 것을 전송한다. 🟢 웹 서버(Web Server) HTTP 기반으로 동작 정적 리소스 제공, 기타 부가기능 정적(파일) HTML, CSS, JS, 이미지, 영상 예) NGINX, APACHE 🟢 웹 애플리케이션 서버(WAS - Web Application Server) HTTP 기반으로 동작 웹 서버 기능 포함+ (정적 리소스 제공 가능) 프로그램 코드를 실행해서 애플리케이션 로직 수행 동적 HTML, HTTP API(JSON) 서블릿, JSP, 스프링 MVC 예) 톰캣(Tomcat) Jetty, Undertow Web ser..
✔ 문제 059 타임머신으로 빨리 가기 문제 바로가기 💨 ⬜ 핵심 아이디어 ▪️ 벨만 포드 특정 출발 노드에서 다른 모든 노드까지의 최단 경로 탐색 음수 가중치 에지가 있어도 수행할 수 있다. 전체 그래프에서 음수 사이클의 존재 여부를 판단할 수 있다. ⬜ 핵심 구현 에지 리스트로 구현한다. 최단 경로 배열은 출발 노드는 0, 나머지 노드는 무한대로 초기화 한다. 모든 에지를 확인해 정답 배열을 업데이트 한다. 노드개수 - 1 만큼 아래 조건에 해당하는 최단 거리 배열을 업데이트한다. D[s]!= ∞ 이며, D[e] > D[s] + w 일 때, D[e] = [s] + w 로 배열의 값 업데이트 모든 에지를 한번 씩 다시 사용해 업데이트 되는 노드가 발생하면 음수 사이클이 있다는 뜻이다. 🪄 실제 코드를 ..
· Java
🖤 3. 변수와 메서드 1.2 객체지향언어 객체지향언어 장점 코드의 재사용성이 높고 유지보수가 용이하다. 재사용성, 유지보수, 중복된 코드의 제거 2.4 인스턴스의 생성과 사용 클래스명 변수명; // 클래스의 객체를 참조하기 위한 참조변수를 선언 변수명 = new 클래스명(); // 클래스의 객체를 생성 후, 객체의 주소를 참조변수에 저장 위에서 new를 할때, 클래스의 멤버변수는 각 자료형에 해당하는 기본값으로 초기화 된다. 인스턴스는 참조변수를 통해서만 다룰 수 있으며, 참조변수 타입은 인스턴스 타입과 일치해야 한다. 자신을 참조하고 있는 참조변수가 하나도 없는 인스턴스는 가비지 컬렉터에 의해서 자동적으로메모리에서 제거된다. 2.6 클래스의 또 다른 정의 프로그래밍적 관점에서, 클래스는 데이터와 함수..
· Java
[Java] 김영한의 실전 자바 - 기본편 섹션3,4 객체 지향 프로그래밍,생성자 ○ 섹션 3 객체 지향 프로그래밍 ⬜ 절차 지향 프로그래밍 ◼️절차 지향 프로그래밍 실행 순서, 즉 절차를 지향 흐름을 순차적으로 따르며 처리하는 방식 (어떻게) ◼️객체 지향 프로그래밍 객체를 지향 객체들 간 상호작용을 중심으로 프로그래밍 (무엇을) ◼️차이점 절차 지향은 데이터와 처리방식이 분리, 반면 객체 지향에서는 데이터와 메서드가 하나의 '객체'안에 함께 포함 ⬜ 클래스와 메서드 클래스에는 속성(데이터, 멤버 변수)과 기능(메서드)을 정의할 수 있다. 객체는 자신의 메서드를 통해 자신의 멤버 변수에 접근할 수 있다. 객체의 메서드 내부에서 접근하는 멤버 변수는 객체 자신의 멤버 변수이다. 메서드 예제 public ..
https://school.programmers.co.kr/learn/courses/30/lessons/120885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Algorithm Idea 모듈안쓰고 풀어볼라니 골치 아파 죽을것같다.. 먼저, 계산은 다음과 같다. 1. binary 수 두개를 리스트에 역순서로 저장 ( ← 순으로 계산하기 위해 ) 2. 이제 각 자리수를 더해준다. 자리수 계산. 이때 carry가 있으면 다음 계산을 위해 carry에 저장. Python def solution(bin1, bin2): answer = bin(int(bin1,2..
· Java
🔲 Array 정해진 공간이 있고, 모든 곳에 식별자(인덱스)가 존재한다. 객체 생성시 크기를 할당해주어야 한다. (크기 고정) 조회가 빠른 대신 삽입/삭제가 느리다. (데이터를 한칸씩 밀어야 하므로.) 크기조회는 length primitive type(int,byte, char etc), object를 저장한다. 🔲 List 식별자가 없다. 크기 할당이 필요하지 않다. 조회가 느린 대신 삽입/삭제가 빠르다. (연결 리스트 방식 사용.) 크기조회는 size() 🔲 ArrayList (Array 장점 + List 장점 취합) 동적이고 식별자(인덱스) 가 존재한다. capacity 변수를 가지고 있다. 만약 설정한 capacity를 넘어서 더 많은 객체가 들어오면, 배열 크기를 1.5배 증가시킨다. obje..
· Java
1.1 배열(array) 이란? 배열은 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것 1.2 배열 선언과 생성 타입[] 변수이름; // 배열을 다루기 위한 참조변수 선언 변수이름 = new 타입[길이]; // 배열을 생성 (실제 저장공간을 생성) 1.2 배열 길이와 인덱스 배열의 길이 최대값은 int 타입의 최대값 (약 20억) 길이가 0인 배열도 생성이 가능하다. 배열 길이는 한번 생성 후 변경할 수 없다. 1.2 배열 생성과 초기화 배열을 생성할 때, 타입은 양쪽중 하나는 생략하지 않고 꼭 써줘야 한다. int[] score = new int[]{50, 60, 70, 80, 90}; // 배열 생성, 초기화 동시에 int[] score_2 = {50, 60, 70, 80, 90}; // new ..
· Java
[Java] 김영한의 실전 자바 - 기본편 섹션1~2 클래스와 데이터, 기본형과 참조형 ○ 섹션 1 클래스와 데이터 ● 클래스 멤버 변수(Member Variable),필드(Field) 필드: 클래스에 정의한 변수들 클래스는 관례상 대문자로 시작하고 낙타 표기법을 사용. ex) MemberService 클래스: 설계도 객체 또는 인스턴스: 실제 메모리에 만들어진 실체 객체를 생성하면 자바는 객체에 접근할 수 있는 참조값(주소) 반환 new 키워드를 통해 객체 생성 후 참조값 반환 new 는 클래스를 기반으로 메모리에 실제 객체를 만드는 것. 리턴 참조 값을 변수에 저장함으로써 실제 메모리 존재 객체에 접근 가능 ● 객체에 값 대입 클래스,객체,인스턴스 정리 클래스: 틀 또는 설계도. 객체가 가져야 할 속..
고쩡이
고민보다 Go