개발 38

TCP, UDP

IP 패킷 : 출발지 IP, 목적지 IP 등의 정보 TCP 세그먼트 : 출발지 port, 목적지 port, 전송 제어, 순서, 검증 정보 TCP 특징 전송 제어 프로토콜(Transmission Control Protocol) 연결지향 - TCP 3 way handshake (가상 연결) 데이터 전달 보증 순서 보장 신뢰할 수 있는 프로토콜 현재는 대부분 TCP 사용 1. TCP 3 way handshake SYN : 접속 요청 ACK : 요청 수락 참고 → 3. ACK 와 함께 데이터 전송도 가능하다. 저런 방식으로 데이터를 전송하면 1. SYN ( 접속 요청 ) 시 ACK 가 돌아오지 않는다면 전송을 중지 할 수 있다. → IP 프로토콜의 한계 중 비연결성 을 해결 2. 순서 보장 → 위와같은 일은 전..

참고사항 2023.01.04

spring boot 프로젝트 생성과 사용 이유

spring boot 프로젝트 생성 시 아래 url 주소에서 생성 이때 spring boot 버전을 고를수 있는데 버전 옆에 snapshot 이 붙은건 아직 만들고 있는 단계, m1 이런건 정식 릴리즈가 되지 않은 단계, 아무것도 안붙어있는게 정식 릴리즈 된것 웬만하면 정식 릴리즈된 버전을 선택하자! 여기서 사용되는 gradle은 버전 설정하고 라이브러리를 땡겨오는 역할이라는 정도만 이해하자! https://start.spring.io/ dependencies를 선택하고 generate 누르면 프로젝트 생성! ※ 참고사항 프로젝트 폴더 중 .idea는 intellij가 사용하는 설정파일 gradle/wrapper/는 gradle과 관련된 폴더라고만 알고 지나가기 build 시 더 빠르게 웹서버를 띄우고 ..

JAVA 2022.07.04

[JAVA] JPA 연관관계 매핑( 양방향 )

양방향 연관관계 @OneToMany, @ManyToOne 을 예로 들 수 있다. 객체에는 양방향이 없다. ( 단방향 두개를 잘 묶어서 양방향인 것 처럼 보이게 할 뿐! ) 그럼 객체의 경우 단방향 두개 중 외래 키 관리를 누가 해야할까?? → 연관관계의 주인(Owner) 가 외래키를 관리! 양방향 연관관계 매핑의 규칙 객체의 두 관계 중 하나를 연관 관계의 주인으로 지정( 외래키 소유주를 주인으로 하는 걸 권장 ) 일대 다 기준에서 보통 '다' 쪽이 연관관계의 주인이다. 연관관계 주인만이 외래 키를 관리(등록, 수정) 한다. ( 주인이 아닌 쪽은 읽기만 가능 ) 주인은 mappedBy 사용 불가 mappedBy 속성으로는 주인의 이름을 지정해준다. Member.java /* 연관관계 주인 */ packa..

JAVA 2021.11.17

[JAVA] JPA 연관관계 매핑( 단방향 )

핵심 : 객체지향스럽게 매핑하는 방법 예제 시나리오 - 회원과 팀이 있다. - 회원은 하나의 팀에만 소속될 수 있다. - 회원(N)과 팀(1)은 다대일 관계이다. 1. 객체를 테이블에 맞추어 모델링( 참조 대신 외래키를 그대로 가져와 사용한다. ) Member.java ( teamId 주목 ) @Entity public class Member { @Id @GeneratedValue @Column(name = "MEMBER_ID") private Long id; @Column(name = "USERNAME") private String username; @Column(name = "TEAM_ID") private Long teamId; } JpaMain.java package hellojpa; import..

JAVA 2021.11.16

[JAVA] JPA 플러시(flush)

플러시 발생 변경감지 수정된 엔티티 쓰기 지연 SQL 저장소에 등록 쓰기 지연 SQL 저장소의 쿼리를 DB에 전송( 등록, 수정, 삭제 쿼리 ) 보통 transaction.commit과 동시에 쿼리를 DB에 날리는데 내가 쿼리를 미리 보고싶거나, DB에 먼저 넣고 싶을때 사용! 아래 예시를 보면 commit이 실행되기 전에 insert문이 먼저 실행된다. Member member = new Member(200L, "member200"); em.persist(member); em.flush(); System.out.println("======================="); tx.commit(); // commit을 실행하면서 쿼리를 DB에 날림 ★ JPQL 쿼리 실행 시에는 플러시가 자동으로 실행된다..

JAVA 2021.11.09

[JAVA] JPA 영속성 관리

영속성 컨텍스트란? JPA를 이해하는데 가장 중요하다. 엔티티를 연구 저장하는 환경이라는 뜻이다. 영속성 컨텐스트는 눈에 보이는 것이 아니므로 EntityManager를 통해 접근한다. // DB에 저장하는게 아닌 엔티티를 영속성 컨텍스트라는 곳에 저장하는것 EntityManager.persist(entity); 1. 비영속 상태 : JPA와 관련없음(EntityManager와 상관없음 + 사용하지않음) // 비영속 상태 Member member = new Member(); member.setId(100L); member.setName("HelloJPA"); 2. 영속 상태 : EntityManager 사용 시점부터 영속 상태에 들어감 → 영속성 컨텍스트에 들어감 // 영속 상태 em.persist(me..

JAVA 2021.11.09

[react] Fetching data( async, await )

Data를 가져와서 사용할때 쓰인다. async : 무언가 실행이 완료 되길 기다렸다 다음 코드를 진행 하고 싶을때 사용한다 : 얘는 기다려야만 하는 함수! 뭘 기다려? await를! await는 axios가 끝나기를 기다렸다가 그 뒤에 코드를 진행한다. 아래 예시와같은 경우 영화 데이터를 get 해올때까지 기다린다. import React from "react"; import axios from "axios"; import Movie from "./Movie"; class App extends React.Component { state = { isLoading: true, movies: [] }; // async : 비동기 -> 너는 기다려야만 하는 함수 ( 기다려야 해! ) getMovies = as..

React 2021.09.02

[react] state + component life style

state란? component에서 변하는 데이터를 저장하는 Object( 바꿀수 있는 데이터 ) import React from "react" import PropTypes from "prop-types" /* class는 function이 아니기 때문에 return 값이 존재하지 않음 대신 React.Component가 포함하고 있는 render 사용 */ class App extends React.Component { //react는 자동적으로 모든 class의 render를 실행한다. //component가 render 되기 전에 호출되는 함수 : Mounting -> constructor() //component가 render 된 후 호출되는 함수 : Mounting -> componentDid..

React 2021.09.02

[CentOS] Nginx +php 웹서버 구축

1. php-fpm 설정 # mysql 연동도 원한다면 php-mysql 추가 yum install -y php-fpm php-mysql # php 설정 파일 열기 vi /etc/php-fpm.d/www.conf # 파일 내용중 RPM: apache Choosed to be able to access.... 적힌 부분 아래 처럼 수정 # apache로 적혀있는 부분을 nginx 로 수정한다 user = nginx group = nginx 2-1. Nginx 설치 # nginx 설치 yum install epel-release -y yum -y install nginx 2-2. Nginx 설정 파일 편집 ( /etc/nginx/conf.d/default.conf ) server { # 원하는 포트 설정 l..

Server(설정 등) 2021.08.31