전체 글

전체 글

    SSAFY 11기 모집이 곧 시작됩니다!

    SSAFY 11기 모집 날짜가 다음주 중으로 확정됩니다! 많관부 많관부

    [JPA] Entity안에서 데이터를 수정하는 비즈니스 로직을 만들 때

    @Entity @Builder @Getter @NoArgsConstructor @AllArgsConstructor public class CherryBox extends BaseEntity{ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private int quantity; private int totalPriceBeforeDiscount; private double discountRate; private String description; private int pricePerCherryBox; public void updateCherryBox(int quantity, int totalPriceBeforeDiscount..

    OSI 7계층

    OSI 7계층을 나눈 이유는? OSI 7 계층은 네트워크에서 일어나는 통신과정을 7단계로 나눈 것이다. 계층을 나눈 이유는 통신이 일어나는 과정을 단계별로 파악할 수 있기 때문이다. 7단계중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 시스템을 건드리지 않고도 보수가 가능하다. 학부 때 물리계층에서 올라가는 식으로 배웠기 때문에 물리계층부터 살펴 볼 것이다. 계층 이름 단위(PDU) 예시 프로토콜(Protocols) 디바이스(Device) 7 응용 계층(Application Layer) Data 텔넷(Telnet), 구글 크롬, 이메일, 데이터베이스 관리 HTTP, SMTP, SSH, FTP, Telnet, DNS, modbus, SIP, AFP, APPC, MAP 6 표현 계층(Presentatio..

    http와 https

    HTML 삽입 미리보기할 수 없는 소스 HTTP(HyperText Tranfer Protocol) 웹 상에서 클라이언트와 서버간에 요청,응답으로 정보를 주고받을 수 있는 프로토콜 TCP와 UDP를 사용하며 80번 포트 사용 특징 비연결 클라이언트가 요청을 서버에 보내고 서버가 응답을 클라이언트에 보내면 연결이 바로 끊긴다. 무상태 연결을 끊는 순간 클라이언트와 서버의 통신은 끝나며 상태정보를 유지하지 않는다 HTTPS(HyperText Tranfer Protocol over Secuer Socket Layer) HTTP의 보안이 강화된 프로토콜 특징 443번 포트를 사용 비공개 키 알고리즘 사용하여 데이터의 적절한 보호를 보장 암호화를 하는 과정이 웹 서버에 부하를 준다. 따라서 http에 비해 느리다 ..

    [Spring] application.yml에서 값 가져오기

    greeting: message: Welcome to the User Service 첫 번째 방법. Env객체 사용하기 @RestController @RequestMapping("/") public class UserController { private Environment env; @Autowired public UserController(Environment env) { this.env = env; } @GetMapping("/welcome") public String welcome(){ return env.getProperty("greeting.message"); } } 두 번째 방법. @Value 사용하기 우선 클래스를 하나 만들어주고, @Component어노테이션을 추가한다. package co..

    [JPA] JPQL(2) - 기본문법과 파라미터 바인딩

    select_문 :: = select_절 from_절 [where_절] [groupby)절] [having_절] [orderby_절] update_문 :: = update_절 [where_절] delete_문 :: = delete_절 [where_절]참고로 엔티티를 저장할 때에넌 persist()메소드를 사용하면 되므로 INSERT문은 없다 기본문법과 쿼리API SELECT문 SELECT m FROM Member AS m where m.username = 'Hello'대소문자 구분 엔티티와 속성은 대소문자를 구분한다. 예를 들어 Member, username은 대소문자를 구분한다 반면에 SELECT, FROM, AS같은 JPQL키워드는 대소문자를 구분하지 않는다. 엔티티이름 JPQL에서 사..

    [JPA] JPQL(1) - 객체지향 쿼리 소개

    JPQL을 자세히 살펴보기에 앞서 우선 객체지향 쿼리언어가 무엇인지 알아보고 갑시당. 객체지향 쿼리언어란 테이블이 아닌 객체를 대상으로 검색하는 객체지향 쿼리이다. SQL을 추상화해서 특정 데이터베이스 SQL에 의존하지 않는다 즉 객체지향 SQL이다. JPA가 공식지원하는 기능 JPQL Criteria쿼리 네이티브 SQL JPA가 공식 지원하는 기능은 아니지만 알아둬야 할 것 Qeury DSL JDBC직접사용, MyBatis같은 SQL매퍼 프레임워크 사용 JPQL소개 Java Persistence Query Language는 엔티티 객체를 조회하는 객체지향 쿼리이다. JPQL은 SQL을 추상화해서 특정 데이터베이스에 의존하지 않는다. 따라서 Dialect만 수정하면 JPQL을 수정하지 않아도 데이터베이스..

    연관관계 매핑 기초 - 단방향

    자바ORM표준JPA프로그래밍을 보고 메모한 내용입니다. 연관관계 매핑 기초 - 단방향 객체는 참조를 사용해서 연관관계를 맺고, 테이블은 외래 키를 사용해서 관계를 맺는다. 따라서 객체의 참조와 테이블의 외래 키를 매핑해야 한다. 키워드 정리 방향 단방향, 양방향이 있다. 예를들어 회원과 팀이 관계가 있을 때 회원 → 팀 또는 팀→ 회원 둘 중 한쪽만 참조하는 것을 단방향 관계라 하고, 회원 → 팀, 팀 → 회원 양쪽 모두 서로 참조하는 것을 양방향 관계라 한다. 방향은 객체 관계에만 존재하고 테이블 관계는 항상 양방향이다. 다중성 다대일, 일대다, 일대일, 다대다 다중성이 있다. 예를 들어 회원과 팀이 관계가 있을 때 여러 회원은 ㅎ므로 회원과 팀은 다대일 관계다. 반대로 한 팀에 여러 회원이 소속될 수..