본문 바로가기

전체 글170

[6] Item 등록 및 조회 1. 상품 등록하기 ✨ Item의 Image를 저장하는 상품 이미지 엔티티를 만들어보자. Item과 Item_img는 일대다 관계이다. _ItemImg_ @Entity @Table(name = "item_img") @Getter @Setter public class ItemImg extends BaseEntity { @Id @Column(name = "item_img_id") @GeneratedValue(strategy = GenerationType.AUTO) private Long id; private String imgName; // 이미지 파일명 private String oriImgName; // 원본 이미지 파일명 private String imgUrl; // 이미지 조회 경로 private S.. 2023. 1. 4.
톰켓이란? HTTP 통신에서 소켓과 통신하는 것을 시스템 콜이라고 한다. 톰켓을 알기 위해선 웹서버에 대해 알아야한다. 내가 가진 컴퓨터에 3개의 파일을 공유하고 싶다. 이때 다른 컴퓨터들 A,B,C가 있다고 했을 때, 내 컴퓨터 다른 컴퓨터들을 HTTP로 연결 되어있다. 이 경우 내 컴퓨터는 갑에 해당하고, A,B,C는 을에 해당한다. 을이 갑에게 파일을 달라고 하는 것을 Request 반대로, 갑이 을에게 파일을 주는 것을 Response라고 한다. Request를 할때에는 ip주소를 이용하고, Request 시 어떤 파일을 원하는 지를 URL로 표현을 한다, (예, test.com/a.html) 위 같은 상황에서 만약 을이 Request를 안하면 갑은 을의 주소를 알수 없기때문에 Response를 할 수 없다.. 2023. 1. 4.
HTTP란 무엇인가? 소켓 통신 소켓이란? : 운영체제가 가지고 있는 것 [ 원리 ] 1. A가 C에 접속 요청을 하면 C에 5000이라는 Port의 소켓이 Open된다. (5000은 접속 전용 소켓) 2. A와 접속이 되면 5000 포트와 연결이 끊기고, 새로운 쓰레드의 무작위 포트와 연결된다. 3. 똑같이 B와 C도 5000포트로 연결되면 끊기고, 새로운 쓰레드의 무작위 포트와 연결된다. [ 단점 ] 위 방식은 Time Slice 방식이고 계속 연결되어 있기 때문에 Thread가 많아지면 과부화가 발생된다. HTTP 통신 - Stateless 방식 : 문서를 전달하는 통신 [ 원리 ] 1. A가 a.txt를 요청하면 C의 소켓에서 해당 파일을 보여주고 연결을 끊는다. 2. 마찬가지로 B가 b.txt를 요청하면 C의 소켓에.. 2023. 1. 3.
[5] 연관매핑 연관매핑이란? Entity와 연관 관계를 매핑해두고, 해당 Entity와 관련된 Entity를 사용하는 것. 1.1 일대일 단방향 매핑 cart - member 회원 한명 당 하나의 카트를 가지게 설정하려고 함. 카트에 회원의 아이디를 저장하는 칼럼을 만든다. -> Cart @Entity @Table(name = "cart") @Getter @Setter @ToString public class Cart extends BaseEntity { @Id @Column(name = "cart_id") @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name="me.. 2022. 12. 30.
[4] Spring Security 1. Spring Security 인증, 인가를 위해 사용 인가는 인증 과정 이후, 관리자 페이지에 일반 유저 접근하지 못하는 것 등이 포함 2. Security 설정 https://hhseong.tistory.com/173 @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { } @Bean public PasswordEncoder passwordEncoder(){ return new BCryptPasswordEncoder(); } } WebSecur.. 2022. 12. 30.
BOJ 9184] 신나는 함수 실행 [ 다이나믹 프로그래밍 이란? ] - 이미 구한 값은 다시 구하지 않고 재사용! { DP에서의 가정 } 1. 큰 문제를 작은 문제로 나눌 수 있어야한다. 2. 작은 문제에서의 정답은 그 문제를 포함한 큰 문제에서도 동일해야한다. [ 접근법 ] 피보나치 수열 문제와 비슷하게 연산을 저장할 배열은 준비한다. 기존 코드 if (a 200){ returns w(20, 20, 20); } if (a < b && b < c){ return w(a, b, c-1) + w(a, b-1, c-1) - w(a, b-1, c); } else { return w(a-1, b, c) + w(a-1, b-1, c) + w(a-1, b, c-1) - w(a-1, b-1, c-1); } 위 코드에서 우리는 연산을 저장해야 한다. -.. 2022. 12. 27.