일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- DTO
- API
- spring boot
- 프레임워크
- 뷰
- Spring Framework
- framework
- Github
- oracle
- autowired
- CS
- bean
- HTTP
- GIT
- error
- Java
- REST API
- pls-00103
- JavaScript
- SQL
- 어노테이션
- https
- JSON
- Entity
- react
- 개발자기록
- vue
- Spring
- vue3
- 깃허브에러
- Today
- Total
목록분류 전체보기 (54)
o-ohi-code 님의 블로그

네트워크의 기본 구조 : 그래프 형태 *Node(정점) : 네트워크에서 하나의 개체(장비나 지점)을 의미한다.*Edge(간선) : 노드와 노드를 연결하는 선, 즉, 통신 경로(연결선) 정리하면 정보를 주고 받을 수 있는 모든 컴퓨터 장비를 Node 라고 하며, ex) 노트북, 테스크탑, 스마트폰, 서버, 공유기(Router), 스위치(Switch) ㄴ 이런 것들이 모두 하나하나 Node가 되는 것이다. Node와 Node 를 연결해주는 선, 즉 (Edge)통신 경로이다. ex) 이더넷 케이블(컴퓨터 - 공유기), wifi 연결(스마트폰 - 라우터), 광케이블(서버 - 서버).. ㄴ 이런 연결들이 Edge 에 해당한다.가장 자리 Node이 Node와 Edge 사이에서 우리가 사용하고 있는 컴퓨터 ..
Web Framework (웹 프레임워크) 웹 애플리케이션을 만들 때 필요한 공통 기능들을 미리 만들어 놓은 틀(Framework)라는 뜻이다. 🤔 웹 프레임워크가 필요한 이유는 무엇일까? 보통 웹 서비스를 만드는 개발자라면 매번 똑같은 일들을 반복하고 있을 것이다. ex) 사용자 URL 확인, 로그인 여부, 데이터 저장 불러오기, 에러 처리 ..등 이걸 매번 처음부터 직접 짜야 한다면 머리가 아플 것이다... ㄴ 이때 등장한 것이 바로 web framework 이다. 🫤 만약 WebFramework 가 없다면 ㄴ 기초부터 집을 혼자 지어야 하는 것처럼, 서버도 모든 걸 직접 구현해야 하는 번거로움이 있다. 요청 처리, 라우팅, 파라미터 파싱, 세션 관..
트랜잭션 하나의 작업 단위를 구성하는 연산 묶음 *이 작업 단위는 모두 성공하거나, 모두 실패애햐만 한다.* ex) 은행 계좌 이체를 가정 A 계좌에서 돈 빠지고 B 계좌에 돈 들어간다. 이는 하나는 성공하고, 하나는 실패하면 안되는 경우이다. 둘다 성공하거나, 둘 다 실패해야 한다 이런 것을 하나의 트랜잭션으로 묶는 것이다.트랜잭션 4대 속성 (ACID) A - 원자성 : 머드 상겅 or 모두 실패 (중간 없음) C - 일관성 : 트랜잭션 전후의 데이터 항상 유효한 상태여야 한다. I - 격리성 : 동시에 실행돼도 서로 영향 안 받게 한다. D - 지속성 : 트랜잭션 성공 시, 결과는 영구적으로 저장되어야 한다. 트랜잭션이 필요한 이유여러 DB 작업이 연결된 경우 : 하..
JPA (Java Persistence API) : 자바 *ORM 표준 명세 *ORM( Object Relational Mapping )* : 객체(Object, 자바 클래스) 와 관계형 데이터(Relation DB)를 매핑(Mapping) 해주는 기술// 자바 객체class User { String name; int age;}-- 데이터베이스 테이블CREATE TABLE user ( name VARCHAR(100), age INT);// 간단히 말해서 아래 처럼 DB 테이블과 연결해주는 게 ORM 이다.// 자바 클래스와 DB 테이블이 서로 연결돼서, SQL 을 안 써도 되게 된다.!ORM 을 사용하는 이유Sql 을 직접 사용 안해도 됨 : UserRepository.findAll() ..
1. DTO 객체 그대로 반환 (가장 일반적)@GetMapping("/user")public UserDTO getUser() { return new UserDTO("민성", 25);}Vue 에서는 res.data.name 이렇게 받는다.자동으로 Json 으로 변경(jackson 덕분)2. List 반환@GetMapping("/userList")public List getUserList() { return userService.getAllUsers();}프론트는 res.data[0].name 이런 식으로 사용Json 배열로 자동 변환3. Map 반환 (여러 값 묶어서 줄 때 사용)@GetMapping("/response")public Map getResponse() { Map result ..
HTTP 메서드의 역할GET : 조회, 서버 상태 변경 XPOST : 등록, 서버 상태 변경 OPUT : 수정(전체), 자원 교체PATCH : 수정(일부), 자원 일부 변경DELETE : 삭제, 자원 삭제이렇게 RESTful 하게 개발하는 이유는 직관적인 API 설계를 통해, 개발자들끼리 딱 봐도 이해가 가고, 문서화, 자동화, 보안 유지보수에 유리하기 때문이다.1. 클라이언트 → 서버 (String) : Query Parameter(String) : Get (조회)const workplaceCode = row.item.workplaceCodeconsole.log('workplaceCode', workplaceCode)function getWorkplaceDetail(workplaceCode: strin..

ORA-00904 [oracle DB 문법 오류]java.sql.SQLSyntaxErrorException: ORA-00904: "WORKPLACE0_"."APPROVAL_STATUS": invalid identifierworkplace 테이블에 Approval_status 라는 컬럼이 DB 테이블에 존재하지 않아서 발생하는 간단한 문제이다.또는 철자가 틀렸거나, 컬럼명이 대소문자 문제가 있거나, 매핑 문제일 가능성이 크다. 여기서 WorkPlace 는 DTO 인데 DB 에 approval_status 컬럼이 없기 때문에 주석 처리를 해주어 문제를 해결하였다.
@Bean@Configuration 이 붙은 클래스 안에서 사용된다.해당 메서드가 반환되는 객체를 Spring IoC 컨테이너에 Bean 으로 등록을 해준다.즉, 우리가 new 키워드로 직접 객체를 생성하는 대신, Spring 이 대신 생성하고 관리하도록 만드는 방법 이다.이렇게 하면 @Autowired 를 통해 (의존성 주입) 을 할 수 있게 된다. @CorssOrign(*)다른 도메인에서 오는 HTTP 요청을 허용할 수 있게 해주는 어노테이션이다.기본적으로 브라우저는 출처(origin)가 다른 서버에 요청을 보내는 걸 제한한다. ex) http:localhost:3000 (react 프론트엔드) -> http://localhost:8080 (Spring 백엔드) 요청 시 CORS 문제가 발생한다.*C..
@BuilderBulider는 필드가 많은 객체를 가독성 좋고, 실수 없이, 유연하게 만들기 위한 디자인 패턴이다.DTO 에서 자주 사용되지만, Entity, 설정 객체, 테스트 객체 등 다양한 곳에서 활용🤔 그럼 우리는 Builder 라는 어노테이션을 언제 사용하게 되는 걸까?우선 기본으로 돌아가서 단순히 객체를 만든다고 가정// 1. 클래스 생성public class Person { String name; int age; // 2. 생성자 만들기 public Person(String name, int age) { this.name = name; this.age = age; }}// 3. 객체 생성Person p = new Person("영웅", 3..
메서드 체이닝여러 개의 메서드를 한 줄로 이어서 호출하는 방식을 말한다.각 메서드가 자기 자신(this)을 리턴하기 때문에 가능하다.메서드 체이닝 없는 방식 ❌ (일반적인 호출)StringBuilder sb = new StringBuilder();sb.append("Hello");sb.append(" ");sb.append("Java");System.out.println(sb.toString());메서드 체이닝 방식String result = new StringBuilder() .append("Hello") .append(" ") .append("Java") .toString();System.out.println(result); // 👉 Hello Java이게 메서드 체이닝 이다..