Back-end 22

DB basic (RDBMS, SQL)

SQL 구문의 종류 DDL (Data Definition Language) : 데이터를 정의하는 언어, 데이터를 저장할 수 있도록 구조를 만들어주는 언어 CREATE : 데이터베이스, 인덱스, 테이블 등 공간을 생성하기 위한 명령어 CREATE DATABASE `heebumDB`; CREATE TABLE 'heebumtb' ( ...) DROP : 데이터베이스, 테이블 등 공간을 삭제하기 위한 명령어 DROP DATABASE 'heebumDB'; DROP TABLE 'heebumtb'; ALTER : 이미 생성한 공간에 추가 작업하기 위한 명령어 ALTER TABLE 'heebumtb' ADD '컬럼명';ALTER TABLE 'heebumtb' MODIFY '컬럼명';ALTER ..

Back-end/DB 2025.10.08

JAVA ..

나는 원래 Python을 주언어로 써왔고, 지금도 Python이 훨씬 편하다.근데 왜 Java를 다시 배우는 걸까? 왜 이렇게 많은 기업들이 Java를 쓸까?Java가 어떤 언어인지, Python과 비교했을 때 어떤 차이가 있는지, 그리고 현재 Java의 현황까지 한 번 정리해보려고 한다. Java란? ☕ 객체지향 프로그래밍 언어 (OOP) 플랫폼 독립적: "Write Once, Run Anywhere" (JVM 덕분에 어디서든 실행 가능)정적 타입(static typing): 변수 선언 시 타입 명시해야 함클래스 기반 구조: 모든 것이 클래스 안에서 이루어짐GC(가비지 컬렉션) 자동 메모리 관리 사용되는 분야 ? 대규모 기업용 시스템 (SI, ERP, 은행, 보험 등)안드로이드 앱 개발서버 백엔드..

Back-end/JAVA 2025.07.17

Spring Boot 가이드 (서버 정상 가동 여부 체크 포인트)

Flask나 FastAPI 위주로 사용하다 Spring boot를 학습하고 프로젝트를 진행하다보니 헷갈리는 부분이 많았다.서버 가동관련 확인할때 체크해야 할 부분은 다음과 같다. ✅ 서버 정상 기동 여부 체크 포인트1. Spring Boot 로고와 버전 출력 → Spring Boot가 제대로 시작됐다는 의미 2. 내장 Tomcat 서버 시작 로그 → Tomcat이 8080 포트에서 정상적으로 뜸 3. DB 연결 성공 (HikariCP) → MySQL 연결 완료 4. JPA 테이블 관련 쿼리 실행 → JPA가 Entity에 맞게 테이블 스키마를 자동으로 수정 5. 애플리케이션 시작 완료 → 최종적으로 Spring Boot 애플리케이션 실행 완료.

Flask CORS (Cross Origin Resource Sharing)

보통 웹에서 사용하는 HTTP request는 다른 도메인 데이터를 요청할 수 있다. 가령 Flask로 local에서 구현하다가 구글같은 페이지의 주소를 복사해와서, src = '' 안에 넣으면 로컬페이지에서 구글페이지 이미지가 뜨는것과 같은 구조이다. 하지만 스크립트 태그 ( )로 둘러싸인 스크립트 코드에서 실행되는 HTTP request는 동일한 서버에서만 요청할 수 있다. 정확히 프로토콜, 호스트명, 포트가 동일해야하고 이를 Same Origin Policy 라고 한다. 즉 http://localhost:5000/ 서버에서 http://localhost:8080/test 이 서버에 요청할 수가 없다는 것이다. (포트번호가 다르기 때문에 에러가 난다) 그럼 프론트엔드 서버에서 백엔드 서버를 가져와야하..

Back-end/Flask 2022.07.29

Rest API 요청시 파라미터, 값 넣기

HTTP 요청 중 가장 많이 사용되는 방식은 GET 방식으로, 이를 통해 URI 상에 파라미터와 파라미터값을 넣을 수 있다. URL?para1=para1_value&para2=para2_value 이런식으로 계속해서 파라미터값을 ?을 시작으로 &을 통해 구분해주며 값을 계속해서 넣어나갈 수 있다. form이라는 태그에서 method를 get으로 쓰고, action의 의미는 이 폼을 제출했을때, input.html로 이동하는 것을 의미한다. 결과적으로 fun-coding.org에서 작동하는 이 폼을 submit하면 위와 id와 pw의 값들을 저장하고, get방식으로 URI값으로 백엔드 서버에 해당 request를 보내게 된다. 로그인 ID: PW: html 파일로 간단하게 로그인 폼을 만들고,이 값들을 a..

Back-end/Flask 2022.07.27

Rest API 이해를 위한 HTTP protocol

http protocol은 컴퓨터를 클라이언트와 서버로 구분하고, 클라이언트에서 HTTP Request를 보내면 서버에서 HTTP Response를 보내주게 구성되어있다. 제일앞에 메서드가 들어가고, 경로가 들어간 뒤 버전이 들어가는 형식으로 Request를 보낸다. response는 버전을 시작으로 스테이터스 코드, 메세지와 함께 여러 데이터들을 받을 수 있다. 데이터를 다룰 때는 crud를 알아야한다. 이 rest api도 마찬가지로 데이터를 다루는 것이기에, 이 메서드들을 모두 알아야하고 여기에 맞춰서 구현이 이루어진다. 결국 REST API란 이 방식을 기반으로 api를 구현한 것이고, 마이크로 서비스, Open API(누구나 사용할 수 있도록 공개된 api) 에서 많이 사용된다. 그러면 Flas..

Back-end/Flask 2022.07.26

create data with JPA

DB에 데이터를 기록하려면, 서버에서 데이터베이스에 데이터를 저장해달라고 말해야하는데, 데이터베이스는 자바를 알지 못한다. 이를 위한 도구가 바로 JPA 이다. 즉 JPA는 자바언어를 디비가 이해할 수 있게하고, 데이터관리에 편리한 여러 기능을 제공한다. entity -> 자바 객체를 디비가 이해할 수 있게 규격이고, 엔티티는 리파지토리라는 일꾼을 통해 DB에 전달되고 처리된다( DB table에 처리). 이 과정은 우선, 1. dto를 entity로 변환한다. 기본 프로젝트 안에 entity패키지를 만들고, 그안에 Article이라는 클래스를 만들어준다. @Entity //DB 가 해당 객체를 인식 가능! 엔티티라는 어노테이션을 붙혀줘야 데이터베이스가 해당 객체를 인식가능하다. @Column priva..

Form data 주고받기, JPA로 데이터 생성하기 ( 게시판 만들기 시작 )

지금까지 배운것과 함께 CRUD 정도를 구현할 수 있는 게시판 만들기를 구현해보고자 한다. CREATE 를 위해서 폼 태그를 알아보아야 한다. 에서 어디로 어떻게 보낼지를 적어 전송되고 컨트롤러는 이를 객체에 담아 받는다. 이 때 폼 데이터를 받는 객체를 DTO 라고 한다. 사용자의 입력이 DB 라는 창고에 저장이 되야한다. 우선 데이터를 받아서 확인하는 것부터 연습해보자, templates 안에 article이라는 폴더를 만들어 그 안에 게시판 글을 입력 받는 new.mustache를 작성, 입력폼을 간단하게 만들고, 이를 제어할 수 있는 컨트롤러를 만든다. 부트스트랩으로 간단하게 받아와서 입력창을 만들어주었다. form 태그를 던질 때 두가지를 적어줘야하는데, 어디로 보낼지 / 어떻게 보낼지 이다. ..

MVC 역할과 실행흐름, 뷰 템플릿과 레이아웃

Server => Model / View / Controller 의 유기적 역할을 한다. Controller -> Client 로부터 요청을 받고, View -> 최종 페이지를 만들어주고, Model -> 최종 페이지에 쓰일 데이터들을 뷰에게 전달한다. 결국 요청을 컨트롤러가 받고(GetMapping 을 통해) 메서드를 수행하면서 보여줄 페이지를 리턴한다. 보여줄 페이지에서 사용할 변수는 모델을 통해서 등록한다. 뷰 템플릿은 보통 header / content / footer 로 이루어져있고, 스프링 부트에서는 이를 {{>layouts/header}} titles bodys... Submit {{>layouts/footer}} 이렇게 표현할 수 있다. 여기서 {{}} 안에 파일명을 채워주면 그 파일 전체..

Web service의 동작원리와 View template

웹서비스는 기본적으로 클라이언트(컴퓨터)와 서버(서비스 제공프로그램)의 요청(request)과 응답(response)으로 이루어진다. localhost:8080 여기서 localhost 는 주소를 의미한다.( 내 컴퓨터의 주소) 8080 은 port 번호인데, 방 정도로 해석하면 된다. 즉 우리집의 8080 방으로 연결하겠다는 것을 의미하고 Tomcat started on port 8080 은 이 스프링이 8080에서 실행된다는 것을 의미한다. 만약 localhost:8080/hello.html 이라고 작성하면 이 스프링은 기본적으로 src -> main -> resources -> static 에서 파일을 찾는다. 그 안에서 'hello.hmtl'의 파일을 찾아 응답해준다. View Templates ..