728x90

Backend 14

[python] heapq: 힙이란? 파이썬에서 힙을 사용하고 싶을 때

먼저, 큐에 대해 다시 생각해보자 일반적인 큐는 FIFO 구조로 먼저 들어온 요소가 먼저 나가는 자료구조이다 우선순위 큐도 있다 우선순위 큐는 데이터들이 우선순위를 가지고 우선순위가 높은 요소가 먼저 나가는 자료구조이다 바로 이 우선순위 큐를 위한 자료구조가 힙이다 배열, 연결리스트, 힙 으로 구현이 가능한데 힙으로 구현하는 것이 O(log n)으로 구현하는 것이 가장 효율적이다(나머진 O(n)) 그럼 힙(heap)이란? 여러 개의 값들 중에서 최댓값이나 최솟값을 빠르게 찾아내도록 만들어진 자료구조 완전 이진 트리이며, 시간복잡도는 O(log n)에 추가와 삭제가 가능하다 최대힙, 최소힙 2가지 종류가 있다 최대힙: 부모 노드의 키 값이 자식 노드의 키 값보다 크거나 같은 완전 이진 트리 최소힙: 부모..

Backend/Python 2024.04.04

[python] deque: 파이썬에서 큐를 구현하고 싶을 때

deque는 파이썬에서 큐를 구현할 수 있는 모듈이다 deque를 사용하면 무엇이 좋을까? 속도가 리스트에 비해 빠르다 리스트 = O(n) deque = O(1) 큐작업이 굉장히 편해진다 deque는 링크드리스트 로 구현되어 있기 때문에 리스트를 이용한 스택을 이용하는 것보다 빠르기 때문에 사용하기 좋다 deque의 간단한 사용법을 알아보자면 아래와 같이 import 해서 사용할 수 있다 from collections import deque append: 오른쪽 끝에 원소 추가 appendleft: 왼쪽 끝에 원소 추가 pop: 오른쪽 끝에 원소 제거 후 반환 popleft: 왼쪽 끝에 원소 제거 후 반환 maxlen: 큐의 길이 반환 rotate: 큐를 회전 rotate(num): num이 양수일 경우..

Backend/Python 2024.04.03

[python] 리스트 컴프리헨션(List Comprehension) : 반복문과 조건문 줄이고 싶을 때

리스트 컴프리헨션이란? 파이썬에서 간결하게 반복문과 조건문을 줄이는 것! 아래와 같이 사용한다 list = [ 요소에 연산 수행 for interable의 개별 요소 in iterable if 조건] iterable : 반복 가능한 객체 반복문 사용 예시 1에서 10까지 2를 곱한 리스트 생성하는 예시 a_list = [ i*2 for i in range(1,11) ] print(a_list) #[2,4,6,8,10,12,14,16,18,20] 조건문 사용 예시 1에서 10까지 중 홀수만 수 출력 예시 odd = [i for i in range(1, 11) if i % 2 == 1] print(odd) #[1, 3, 5, 7, 9] 다음과 같이 리스트가 아닌 집합, 딕셔너리 형태로도 출력 가능하다 집합 ..

Backend/Python 2024.04.01

[Spring] AOP(Aspect Oriented Programming)

aop 들어 가기 전,. 기본 용어를 알아보자! 관심사 : 애플리케이션을 개발하기 위한 구현 기능들을 지칭, 중요 기능들을 핵심 관심사라고 한다 횡단 관심사 : 여러 모듈에 걸쳐 공통적이고 반복적으로 필요로 하는 처리 내용 횡단 관심사 분리 : 횡단 관심사를 한 곳으로 모는 것, 이를 실현하는 방법을 관점 지향 프로그래밍이라 함 그래서 aop가 뭔데? AOP 관점 지향 프로그래밍 여러 비즈니스 모듈에서 공통으로 사용되는 횡단 관심사를 중심으로 설계, 개발하는 프로그래밍 기법 객체지향 프로그래밍보다 완성도 높인 프로그래밍 패러다임 예로) 회원, 상품, 배송 서비스에서 핵심 서비스가 따로 있긴 하지만 인증, 보안, 트랜잭션, 캐싱, 로깅 같은 보조 기능은 모두 필요로 한다 AOP 목적 DI는 객체 간의 결합..

Backend/Spring 2023.06.09

[Spring] Mybatis_2

저번 글에 mybatis 관련 설정을 했다 이젠 domain, dao, service, controller, mapper 코드 등을 작성한 후 관계 설정을 해주면 된다 dao 인터페이스 , dao 클래스 //MemberDAO 인터페이스 package org.tukorea.wonjoon.persistence; import java.util.List; import org.tukorea.myweb.domain.StudentVO; public interface MemberDAO { public void add(StudentVO student) throws Exception; public List readList() throws Exception; public StudentVO read(String id) thr..

Backend/Spring 2023.06.09

[Spring] Mybatis

MyBatis란? sql과 자바 객체를 매핑하는 사상에서 개발된 db 접근용 프레임워크 sql 기반으로 db 접근을 수행하는 기존 방식과 큰 규모의 애플리케이션 개발에서 발생하는 과제를 해결함 이거 왜 사용함? 장점이 뭐임? sql을 체계적으로 관리 할수 있고, 자바 객체와 sql 입출력 값의 바인딩 ->mapper 인터페이스를 통해 sql 설정 파일과 연동 ->비지니스 로직에서 mapper 인터페이스를 통해 sql문 실행 주요 컴포넌트 MyBatis 설정파일 sqlSessionFactoryBuilder : mybatis 설정 파일을 바탕으로 SqlSessionFactory 생성 SqlSessionFactory : sqlSesson 생성을 위한 컴포넌트 SqlSssion : sql 발행과 트랜잭션 관리 ..

Backend/Spring 2023.06.09

[JAVA] 상속

객체 지향의 상속 부모클래스에 만들어진 필드, 메소드를 자식클래스가 물려받음 상속의 장점 클래스의 간결화 클래스 관리 용이 소프트웨어 생산성 향상 public class Person{} public class Student extends Person{} //Person 클래스 상속 public class StudentWorker extends Student{} //Student 클래스 상속 부모 클래스 -> 슈퍼클래스로 부름 자식 클래스 -> 서브클래스로 부름 확장할 떄 extends 키워드 사용 자바 상속의 특징 클래스의 다중 상속 지원하지 않음 상속 횟수 무제한 상속의 최상위 조상 클래스는 java.lang.Object 클래스 상속과 접근 지정자 public, protected, 디폴트, privat..

Backend/java 2022.10.25

[JSP] 부록_3-2 중간고사 예상 문제 정리(~3장)

프론트엔드 기술 3가지 설명 (html, css, js)? html 웹페이지를 기술하기 위한 마크업 언어 태그를 이용해서 문서의 구조를 표현 html은 태그로 이루어진 요소로 결정된다 css 문서의 스타일을 지정하는 표준 스타일시트 언어 화면 구성이나 표현 형식 등 디자인 부분은 html 대신에 css에 위임함으로써 문서 구조와 문서 표현을 자연스럽게 분리할 수 있다 js 동적인 웹 페이지를 작성하기 위해 사용되는 언어 모든 웹브라우저들은 자바스크립트를 지원 html의 요소? 시작태그와 종료태그로 이루어진 문서의 구성요소 요소 = (시작태그 +콘텐츠 + 종료 태그) 속성: 요소에 대한 추가적인 정보를 제공 속성은 항상 시작 태그에 이름="값" 형태로 기술 블록 라인, 인라인 라인, 둘의 차이점 html ..

Backend/jsp 2022.10.23

[JSP] 부록_3-2 중간고사 예상 문제 (4~6장)

page 지시어 page 지시어 현재 jsp 페이지를 컨테이너에서 처리하는 데 필요한 각종 속성을 기술하는 부분 보통 jsp 페이지 맨 앞에 위치 ContentType charset 속성 ContentType은 현재 jsp 페이지를 클라이언트에서 처리하기 위한 콘텐츠 유형을 지정하는 부분 ContentType charset 속성은 브라우저가 받을 http 응답 페이지의 문자 인코딩 방식을 설정 pageEncoding 속성 contentType의 charset과 유사한 기능 컨테이너에서 처리할 jsp 파일 자체의 인코딩 설정 "해당 jsp 파일을 UTF-8로 인코딩 하겠다"를 뜻하며 charset은 "클라이언트가 받아볼 페이지가 UTF-8 형식이다"임 위에 두 속성 차이 //jsp파일은 MS949로 작성되..

Backend/jsp 2022.10.23

[JSP] 서블릿, 서블릿 컨테이너

서블릿 자바를 기반으로 하는 웹 애플리케이션 기술 JSP는 서블릿 기반의 웹 스크립트 언어, 내부적으로 서블릿으로 변환되어 실행 --> 자바를 사용하여 웹을 만들기 위하여 필요 기술 서블릿 동작 방식 클라이언트가 url을 입력 HTTP Request가 Servlet Container로 전송 요청을 받은 컨테이너가 HttpServletRequest, HttpServletResponse 객체 생성 web.xml을 기반으로 요청한 url이 어떤 서블릿에 대한 요청인지 찾음 해당 서블릿에서 service메서드 호출 후 doGet() 또는 doPost()를 호출 doGet() 또는 doPost()는 동적 페이지를 생성한 후 HttpSevletResponse에 응답 HttpServletRequest, HttpSer..

Backend/jsp 2022.10.19
728x90