Backend 53

@Transactional : 해줘야 할 상황. rollback 되지 않을 때.

Service에서 로직을 수행할때 묶어서 처리해야할 다수의 메소드가 있을 경우, 묶어서 처리해줘야한다. 꼭 여러개의 메소드가 있다고 해서 Transactional을 걸어줘야하는건 아니다.만약 다수의 메소드라 해도 SELECT .. 만 해주는 등 R 작업만 해준다면 꼭 묶음 처리해줘야할 필요가 없기 때문. 읽어오기만 하는 작업만 이어도 Pager일 경우엔 해줘야한다. @Transactionalpublic void insertInfo(Map paramMap) throws Exception { getInfo(); insertUser(); updateInfo(); //에러발생} 이렇게 여러개의 메소드를 수행한다고 가정해보자. 여러 메소드를 수행하다가 한 메소드에서 에러가 발생한다면, 전체insertInf..

Backend/Spring 2025.06.25

nodeserver DB연동 CRUD_ postman

프로젝트 생성하기. npm init -y npm i expressnpm i --save-dev nodemonnpm i corsnpm i mariadb  db와 연동하기위해 mariadb도 설치해주었다. 시작! db 연동작업을 위해, db.mjs파일을 하나 만들어준다.import mariadb from 'mariadb';const pool = mariadb.createPool({ host:'127.0.0.1', user:'root', password:'123', database:'test', connectionLimit:5});export default pool; 포트번호, 파일경로등 세팅작업import express from "express";import path from "p..

Backend/Node.js 2024.08.16

ajax(fetch)로 db연동해서 출력하기

타임리프를 사용하여 구현해보자. 시작하는 index.htmljson 처리: 단일자료json처리: 복수자료ajax 요청처리(jQuery)ajax 요청처리(fetch)  컴포넌트 데이터처리@Component@Datapublic class MyModel { private String name; private String skills[];}  json 처리반환값이 1개일경우@Controllerpublic class JsonController { @Autowired private MyModel myModel; @GetMapping("list") @ResponseBody public MyModel getJson(@RequestParam("name") String name) { myModel.setName(nam..

Backend/Spring 2024.08.16

ajax를 이용해 db에 이미지 넣어보기

db에 다운로드해보자친구사진 넣어보기create table friend(bunho int primary key,irum varchar(20),junhwa varchar(15),jikup varchar(50),sajin blob,imagetype varchar(255));insert into friend(bunho, irum, junhwa, jikup) values(1, '신기해', '01011111234', '자바개발자');select * from friend;   엔티티@Entity@Data@AllArgsConstructor@NoArgsConstructor@Builderpublic class Friend { @Id //@GeneratedValue(strategy = GenerationType.IDENT..

Backend/Spring 2024.08.14

파일 업로드, 다운로드

css나 이미지는 static폴더 내에 위치해야한다. 이미지 파일 사이즈 제한주기.  ++ 자동으로 refresh되도록 체크해두자  파일업로드package pack.controller;import org.springframework.web.multipart.MultipartFile;import lombok.Data;@Datapublic class UploadDto { private String myName; private MultipartFile myFile; //등록일 등 기타는 생략}package pack.controller;import org.springframework.stereotype.Component;import org.springframework.web.multipart.MultipartF..

Backend/Spring 2024.08.13

로그인세션_body-parser, ejs파일

c:\work2\node_ex>mkdir login-sessioncd login-session >npm init -y>npm i express>npm i ejs>npm i --save-dev nodemon>npm i express-session>npm i body-parser  body-parser먼저 Parser는 무엇을 의미하는가?가지고 있는 데이터를 내가 원하는 형태의 데이터로 ‘가공'하는 과정을 parsing 이라 하며 그 과정을 수행하는 모듈 혹은 메소드를 parser 라 일컫는다.단순히 말하자면 내가 모르는 언어를 내가 원하는 언어의 구조로 바꿔주는 일종의 구문 해석기라고 말할 수도 있다.여기서 기억해야 할 것은 parser는 구문 해석을 할 뿐 번역을 하진 않는다. 번역의 역할은 compil..

Backend/Node.js 2024.08.13

멤버 CRUD_ cors, json 파싱, 포트번호 설정. 라우팅

c:\work2\node_ex>mkdir nodeserver1>cd nodeserver1 >npm init>npm i express>npm i --save-dev nodemon>npm i cors 다음은 폴더를 생성하고, 프로젝트를 생성시 설치한 모듈이다. express: Node.js에서 서버를 쉽게 구축할 수 있도록 도와주는 웹 프레임워크입니다. 간단한 라우팅, 미들웨어, 요청 처리 등을 지원합니다.nodemon: 개발 중에 파일 변경 시 자동으로 서버를 재시작해주는 도구입니다. 코드 변경 사항을 즉시 반영할 수 있어 개발이 용이합니다.cors: Cross-Origin Resource Sharing의 약자로, 서로 다른 출처(도메인) 간의 자원 공유를 허용하도록 서버를 설정하는 미들웨어입니다. 웹 애..

Backend/Node.js 2024.08.13

회원 CRUD, splice()

넘길정보가 담긴 파일import express from "express";import path from "path";import { fileURLToPath } from "url";import cors from "cors";const __filename = fileURLToPath(import.meta.url); //import.meta.url : 현재 파일의 경로const __dirname = path.dirname(__filename);const app = express();app.use(cors()); // cors 미들웨어 등록app.use(express.json()); //express.json 미들웨어. json 파싱용.app.set("port", process.env.PORT || 3000)..

Backend/Node.js 2024.08.13

경로세팅, 라우팅, cors에러

경로세팅하기//환경변수 PORT가 존재하면 그 값을 사용하고, 아니면 3000사용하겠다는 의미.app.set('port', process.env.PORT || 3000);// 현재 폴더를 지정 : __dirname을 ECM(ECMAScript Module)환경에서 사용하기const __filename = fileURLToPath(import.meta.url); //현재 실행중인 파일경로const __dirname = path.dirname(__filename); //현재 실행 중인 폴더 경로 라우팅처리app.get(요청, 라우칭처리)app.get('/', function(req, res){ res.send('아우넘졸리다 으악❄️❄️');});app.get('/java', function(req, r..

Backend/Node.js 2024.08.11