반응형 Language13 [Spring] Error executing DDL : 테이블 생성 오류 Trouble Shooting 목차 상황 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 책을 보며 OAuth2 관련 파트 실습 중, 아래와 같은 오류를 확인하였다. > org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "drop table if exists user" via JDBC Statement > Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "drop table if exists [*]user"; expected "identifier"; 그리고, 정상적으로 user 테이블 생성이 되지 않는것도 확인하였다. > org.hibernate.t.. Language/JAVA&Spring 2022. 10. 24. [Spring] DAO, DTO, VO 개념 간단 정리 목차 DAO Data Access Object 데이터베이스의 data에 접근하기 위한 객체 데이터베이스에 접근하기위한 로직과 비즈니스 로직을 분리하기 위해 사용 DTO Data Transfer Object 계층간 데이터 교환을 하기 위해 사용하는 객체 로직을 가지지 않는 순수한 데이터 객체(Getter, Setter만 가진 클래스) 유저가 입력한 데이터를 DB에 넣는 과정 데이터가 form형태로 DTO에 들어옴 DTO를 받은 서버가 DAO를 이용하여 DB에 데이터를 넣음 VO Value Object 값을 위해 사용됨 Read-Only특징을 갖고 있음 DTO와 유사하지만, DTO는 Setter가 있어 값이 변할 수 있음 Language/JAVA&Spring 2022. 10. 24. [JAVA] 가비지 컬렉션 GC 목차 시작하며 가비지 컬렉션은 자바의 메모리 관리 방법 중 하나로, JVM의 Heap 영역에서 동적으로 할당되었던 리소스 중 필요 없게 된(어떤 변수도 가리키지 않게 된 영역) 리소스를 주기적으로 삭제하는 프로세스이다. 간단하게 말해, 프로그램이 동적으로 할당했던 메모리 영역 중 필요 없게 된 영역을 알아서 해제하는 기법이다. GC의 장 단점 장점 - 메모리 누수 방지 - 해제된 메모리에 접근 방지 - 해제한 메모리 또 해제하는 프로세스 방지 단점 - GC 작업은 순수한 오버헤드 작업임 - 개발자는 언제 GC가 메모리를 해제하는지 명확하게 알기 힘들다 이때문에, 실시간성 프로그램의 경우, GC에게 메모리 관리를 맡기는 것이 알맞지 않을 수 있다. GC 알고리즘 Reference Counting Root .. Language/JAVA&Spring 2022. 10. 11. [JAVA] 좋은 객체 지향 설계의 5가지 원칙 (SOLID) 목차 SOLID - 좋은 객체 지향 설계의 5가지 원칙 SRP : 단일 책임 원칙 (Single Responsibility Principle) OCP : 개방-폐쇄 원칙 (Open Closed Principle) LSP : 리스코프 치환 원칙 (Liskov Substitution Principle) ISP : 인터페이스 분리 원칙 (Interface Segregation Principle) DIP : 의존관계 역전 원칙 (Dependency Inversion Principle) 1. SRP 단일 책임 원칙 Single Responsibility Principle 한 클래스는 하나의 책임만 가져야 한다. 하나의 책임이라는 것은 모호하다. 클 수 있고, 작을 수 있다. 문맥과 상황에 따라 다르다. 중요한 기.. Language/JAVA&Spring 2022. 9. 16. [JAVA] 인터페이스 사용 이유 (Interface) 목차 1. 협업 Todo : 한국인을 위한 번역기 제작. 한사람은 영어 번역 클래스, 다른 한사람은 중국어 번역 클래스 제작 /** * @author 팀원1 */ public class EnglishTrans { public String koreanToEnglish(String str) { //TODO: 한국어를 영어로 번역 } public String englishToKorean(String str) { //TODO: 영어를 한국어로 번역 } } /** * @author 팀원2 */ public class ChineseRendering { public String translateChinese(String str) { //TODO: 한국어를 중국어로 번역 } public String translateK.. Language/JAVA&Spring 2022. 9. 15. [장고] 함수형 뷰 기초 View 기능을 담당 ( 페이지 단위 ) 화면이 나타나는 뷰, 화면이 없는 뷰 화면이 있건 없건 주소 URL은 있어야 한다. 뷰 내용( 함수, 클래스 ), URL이 있으면 동작한다. 뷰의 코드 형식 함수형 - request를 매개변수로 받고( 추가 매개변수 가능 ), 모양은 함수. - 내가 원하는대로 동작들을 설계하고 만들고 싶을 때 사용. 클래스형 - CRUD - 기존에 많이 사용하는 기능을 미리 클래스로 만들어두고 상속받아서 사용한다. - 장고의 제네릭 뷰를 많이 사용 기본 구조 실습 1. 따로 url 설정을 안한 페이지 views.py from django.http import HttpResponse def index(request): # 어떤 계산이나, 데이터베이스 조회, 수정, 등록 # 응답 메.. Language/Python&Django 2021. 10. 29. [장고] 장고(Django) 를 공부할 때 필요한 기본지식 웹 프로그래밍 ( 홈페이지 만들기, 웹 서비스 만들기) - Frontend 화면(웹 브라우저에서 동작하는 코드) : HTML, CSS, JS - Backend 서버(데이터를 입출력하거나, 계산하거나 하는.. 서버에서 동작하는 코드) : Python, Ruby, Java, PHP, JS, C#...등등 앵간한 언어들 다 사용 가능 (+@ GO, Erlang, Perl) HTTP - 웹 사이트 동작 방식 웹 브라우저 주소창에 URL 입력 후 엔터 URL을 이용해서 서버의 IP를 찾는다. IP를 이용해서 서버에 접속 URL에 해당하는 자료를 요청 웹 어플리케이션이 URL을 해석해서 해당하는 코드가 동작 코드의 동작 결과를 응답으로 돌려줌 서버가 웹 브라우저쪽으로 데이터를 보내줌 웹 브라우저가 응답받은 데이터를.. Language/Python&Django 2021. 10. 29. [파이썬] join() 을 이용해 문자열 사이에 구분자(특정문자) 넣기 Join 함수? - 리스트에 특정 구분자를 추가하여 문자열로 변환하는 함수 예시 lst = ['a', 'b', 'c', 'd'] print( ''.join(lst) ) # abcd print( ','.join(lst) ) # a,b,c,d print( '--'.join(lst) ) # a--b--c--d lst = ['Apple', 'Banana', 'Mango', 'Orange'] print( ' + '.join(lst) ) # Apple + Banana + Mango + Orange nums = [1,2,3,4] print( '-'.join(map(str,nums)) ) # 1-2-3-4 lst = ['Apple', 'Banana', 'Mango', 'Orange'] print( ', '.join(f.. Language/Python&Django 2021. 8. 20. [파이썬] 리스트 출력 : 한줄에 하나의 요소씩 출력하는 방법 파이썬에서 print()를 사용하여 리스트를 출력하게되는 경우 기본적으로 한줄에 모든 요소들이 표시된다. 각각의 요소들을 줄 단위로 나누어 출력하는 방법엔 어떤게 있을까? for 문 temp = [1, 2, 3, 4, 5] for i in temp: print(i) 1 2 3 4 5 print()는 기본적으로 출력 후, 개행문자를 추가해준다. print()의 sep 옵션 print(1, 2, 3, 4, 5) print('가', '나', '다', '라', '마', sep='\n') 1 2 3 4 5 가 나 다 라 마 위에서 볼 수 있듯이 sep에 따라 결과가 달라진다. 여러 요소를 특정 조건을 걸어 출력하는 경우, sep 인자에 원하는 구분자를 넣어 구분자를 요소들 사이에 출력할 수 있다. ( 기본은 공백.. Language/Python&Django 2021. 7. 29. 파이썬 코드 실행 시간 측정해보기 (초단위) import time start = time.time() # 시작시간 체크 #코드 print("time :", time.time() - start) # 현재시각 - 시작시간 = 실행 시간(초단위) Language/Python&Django 2021. 7. 13. 파이썬에서 2차원 리스트를 생성할 때 주의해야할 점. 해당 포스트는 https://www.geeksforgeeks.org/python-using-2d-arrays-lists-the-right-way/ 를 토대로 작성하였습니다. 파이썬에서 2차원 리스트를 생성할때 대부분 두가지 방법을 사용하게 된다. 두가지 방법을 차례대로 비교해보며 마주칠 수 있는 이슈에 대해 알아보자. 0으로 이뤄진 길이N의 1차원 리스트를 생성해보자. Method 1a # First method to create a 1 D array N = 5 arr = [0]*N print(arr) Output: [0, 0, 0, 0, 0] Method 1b # Second method to create a 1 D array N = 5 arr = [0 for i in range(N)] print(ar.. Language/Python&Django 2021. 2. 10. 파이썬 문자열 포맷팅 (Python String Formatting) 1. % 문자열 포맷 코드 #숫자 대입 >>> "I eat %d apples." % 3 'I eat 3 apples.' #문자열 대입 >>> "I eat %s apples." % "five" 'I eat five apples.' #정수형 변수 대입 >>> number = 3 >>> "I eat %d apples." % number 'I eat 3 apples.' #2개 이상의 값 넣기 >>> number = 10 >>> day = "three" >>> "I ate %d apples. so I was sick for %s days." % (number, day) 'I ate 10 apples. so I was sick for three days.' +@ %s 포맷 코드는 어떤 형태의 값이든 변환하여 넣을 .. Language/Python&Django 2021. 2. 9. 이전 1 2 다음 반응형