backend 21

[Java] Java의 main() 메서드

자바의 main() 메서드 Java 프로그램은 특정 순서로 실행되는 Java 명령의 시퀀스기 때문에 시작과 끝이 있다. Java 프로그램을 실행하려면 JVM에 프로그램 실행을 시작할 위치를 신호해야한다. Java의 모든 명령어(코드)는 Java 클래스 내에 위치해야한다. 클래스는 함께 속한 데이터와 명령어를 그룹화하는 방법이다. 따라서 클래스는 변수와 메서드를 모두 포함 할 수 있다. 변수는 데이터를 포함할 수 있으며, 메서드는 데이터에 대한 작업 집합(명령어)을 함께 그룹화한다. 자바 클래스 선언 Java 코드는 클래스와 동일한 파일 이름을 가진 파일에 있어야하며 파일 접미사로 끝나야한다. 즉 파일이 클래스 이름과 일치하는 파일에 있어야 Java SDK의 Java 컴파일러 또는 Java IDE 내부에서..

backend/Java 2022.07.28

[Java] 정규표현식

Regular Expression 컴퓨터 과학의 정규 언어로 부터 유래 특정한 규칙을 가진 문자열의 집합을 표현, 형식언어 정해진 형식을 사용자가 제대로 입력했는지 검증 즉 입력값이 형식에 맞는지 검증할 때 자주 사용함. java.util.regex 패키지 안의 Pattern Class와 Matcher Class 사용 문법 ^ 문자열 시작 $ 문자열 종료 . 임의의 한 문자(단 \은 넣을 수 없음). (SQL Like에서 _) * 앞 문자가 없을 수도 무한정 많을 수도 있음 (SQL Like에서 %) + 앞 문자가 하나 이상 ? 앞 문자가 없거나 하나 있음 [ ] 문자의 집합이나 범위를 나타내며 두 문자 사이는 - 기호로 범위를 나타냅니다. [] 내에서 ^ 가 선행하여 존재하면 not을 나타냄 { } 횟..

backend/Java 2022.07.25

[Oracle] Like 용법 정리

시작 WHERE A LIKE 'B%' 끝 WHERE A LIKE '%B' 포함 WHERE A LIKE '%B%' 여러개 포함 WHERE A LIKE '%B%C%' 대소문자 구분 x WHERE LOWER(A) LIKE '%B%C%' 제외 WHERE A NOT LIKE '%B%' 자리수 WHERE A LIKE '__' 2번째가 B WHERE A LIKE '_B%' 언더바를 문자로 쓰기 WHERE A LIKE '%\_%' ESCAPE '\' LIKE 여러개 WHERE REGEXP_LIKE(A, 'B|C|D', i) i는 있으면 대소문자 구분 x 없으면 인..

backend/DB 2022.07.12

[Django] ORM 성능 최적화 N + 1 Problem

ORM이란 Object Relation Mapper 객체와 관계형 data를 자동으로 매핑해주는 것. 객체를 통해 간접적으로 database data를 다룬다. ORM의 장점 객체지향적인 코드로 인해 더 직관적이고 비즈니스 로직에 더 집중 할 수 있게 해준다. 재사용 및 유지보수 용이 DBMS에 대한 종속성이 줄어든다. ( MySQL -> PostgreSQL로 바꿔도 금방 테이블 생성 가능.) ORM의 단점 ORM으로만 완벽한 서비스를 구현할 수 없다. 프로시저가 많은 시스템에선 ORM의 객체 지향적인 장점을 활용하기 어렵다. 프로젝트의 복잡성이 크면 구현하는 난이도가 상승한다. N + 1 Problem django ORM은 Lazy-Loading 방식 ORM에서 명령을 실행할 때마다 데이터베이스에서 데..

[Python] 파이썬 requests, json으로 REST API data 보내고 받기

카카오톡 2차 정답이 없는 문제. 요구사항을 기반으로 trade-off를 감안해 로직을 설계. 로직을 개선해가는 역량. REST API 호출. API결과가 JSON 포맷. REST API 호출 처리 모듈, JSON 파서 사전 준비. pprint, bs4 쓸수있나? 일단 깔아놔보기. JSON? Java Script Object Notation. 통신을 통해 데이터를 주고 받는데 사용되는 규칙, 형식 JSON은 dictionary에 key - value 형식으로 이루어진다. REST API로 이용해 받아온 값을 JSON형태 import json, requests response = requests.get(URL).json() response = requests.post(URL,header,data).json..

[Django] decorator 데코레이터

Django Decorator 장고는 다양한 HTTP기능을 지우너하기 위해 view에 적용할 수 있는 여러 데코레이터를 제공한다. HttpResponseNotAllowed클래스의 요건이 맞지 않으면 반환된다.['GET','POST']형식의 매개변수. HTTP 메서드 require_http_methods from django.views.decorators.http import require_http_methods @require_http_methods(["GET", "POST"]) def my_view(request): # I can assume now that only GET or POST requests make it this far # ... pass require_GET require_POST re..

[Django] 장고 html template문법

장고 생활코딩 장고 템플릿 문법. {% extends "base_generic.html" %} {% block title %}{{ section.title }}{% endblock %} {% block content %} {{ section.title }} {% for story in story_list %} {{ story.headline|upper }} {{ story.tease|truncatewords:"100" }} {% endfor %} {% endblock %} {{}}두개는 변수. 뷰에서 탬플릿으로 context전달이 가능하다. 함수에서 html문서로 객체의 전달이 가능하다. sectin.title은 뷰에서section이라는 객체를 html문서로 보냈다는 뜻이고 그 안에 title속성을 전달..