728x90
반응형
SMALL

항해99 12기 3주차 WIL

느낀점

코딩테스트 문제는 정말 어렵다는 것…진짜… 문제를 푸는데 시간이 좀 많이 걸리는 편입니다..

한문제를 해석하는데 30분 정도 생기고 여기에서 어떤 메서드 함수 변수등을 쓸지 생각하다가 구글링에서 다 찾아보고 또 나열해 놓고 뭘 넣으면 될지 감이 안잡힌게 많아서 다 넣어보고 문제를 풀고 있었습니다.

그러다보니 1문제당 2시간 걸리더라구여 … 쉬운문제 풀고 싶고싶더라구여…

주특기 입문주차가 들어와서 강의듣느라 정말 문제풀 시간이 없어서 이때다 하면서 0레벨 문제를 하루에 1개씩은 꼭 풀고 있습니다!

아직 터미널을 이용해서 깃허브에 올리는데 파일전체를 올리는 걸 고민해바야할거같아요..ㅎㅎ

몇번 시도했다가 안되면 그냥 일일이 올렸는데 ㅎㅎㅎ 계속 시도해보고 모르면 조원분들께 물어볼려구여 ㅎㅎ

그래도 java언어주차때 기술 매니저님이 주신 숙제는 잊지않고 열심히 하고 있습니다!!

야홋!!!

(솔리드에 대해 물어보실거 같아.. 공부를 하고 있긴한데.. 어려워영 ㅠㅠㅠ 이것만 어려운건 아니죠…ㅎㅎ)

이번주도 같은 C반 여러분 너무 고생했고! 오늘 푹쉬고 월요일에 힘차게 해봅시다!!!
근데... 분명 1시 2시까지 공부했는데,, 왜 나는 출석체크를 까먹는가...ㅠㅠㅠ

 

배운점

문제를 어떻게 접근하면 될지에 대해 좀 더 깊이 생각하게 된 경향이 있었습니다.

아직까지 크게 발전한 기미는 없지만.. 그래도 코드를 짜는데 여러방향으로 짤 수 있게 되었다고 생각하고 있는데… 아닌거같네요.. ㅎㅎㅎ

주변에서 잘하고 있다 라고 말해주시는데 사실 다른 분들의 성장이 보이는데 제 성장은 안보여서 사실 막막해하고 있엇어요 ㅠㅠㅠ

그래서 원래 잘하는 꾸준함으로 마음가짐을 다시 먹고 열심히 할 생각입니다!

항상 잘 해왔던 것 처럼 장점을 살려서 열심히하기!!

 


키워드 : 상속, 인터페이스

  1. 상속 (Inheritance)상속은 자식 클래스가 상속받고 싶은 부모 클래스를 선택해서 상속 받는다. 상속받느 클래스를 자식 클래스, 하위 클래스 또는 서브 클래스라고 한다.
  2. 상속을 사용하는 이유는 더 빠르고, 유지보수가 쉽고, 중복이 적으며 통일성 있는 프로그램을 만들기 위해!

1-1) 상속의 대상

자식 클래스가 부모 클래스로부터 상속을 받게 된다면, 부모 클래스의필드와 메서드를 물려받게 된다.

단, 접근제어자가 private을 갖는 필드나 메소드는 상속이 불가능하며, 패키지가 다른 경우 접근 제어자가 dafault인 경우도 상속이 불가능하다.

1-2) 상속의 선언 방법 - extends

상속을 받기 위해서는 상속 받을 자식 클래스 귀에 extends 키워드를 사용하고 부모 클래스를 작성하면 된다.

또한, 자바에서는 자식 클래스가 여러 부모에서 다중으로 상속받는 다중 상속이 불가능하다.

하지만, 부모 클래스는 여러개의 자식 클래스에게 상속 가능

1-3) 상속 정리

  1. 상속 방법 : class 클래스(자식) extends 클래스 (부모)
  2. 자식 클래스는 부모 클래스로부터 메소드와 필드를 물려받아서 사용한다.
  3. 부모 클래스는 자식 클래스에서 정의한 메소드나 필드를 사요하지 못한다.
  4. 자식 클래스 여러 부모 클래스로부터 상속 받지 못한다. 즉, 단일 상속만 가능
  5. 부모 클래스는 여러 자식 클래스에게 상속이 가능
  6. 자식 클래스가 더 다양한 기능이 가능하기 때문에 자식 클래스로 인스턴스를 생성하는 것이 효율적이다.
  7. 인터페이스 (Interface)추상메서드란 구현부가 없는 메서드를 의미만약 구현하지 않게 된다면 컴파일 에러가 발생!
  8. 추상메서드에는 구현부가 없기 때문에 인터페이스를 만든다면 반드시 구현하는 클래스를 만들어야하며, 인터페이스를 구현하기로 한 클래스는 반드시 인터페이스가 명시되어 있는 추상메서드를 모두 구현해야한다.
  9. 인터페이스란, 기본적으로 추상메서드의 모음

2-1) 인터페이스의 역할 → interface를 이용하여, 개발 코드를 직접 수정하지 않고도 사용하고 있는 객체만 변경 할 수 있다.

  • 인터페이스는 객체를 어떻게 구성해야 하는 지 정리한 설계도
  • 인터페이스는 객체의 교환성 또는 다형성을 높여준다.
  • 인터페이스 변수에 인터페이스가 구현된 서로 다른 구현 객체를 할당해서 사용이 가능하다.
  • 구현 객체를 직접 몰라도 인터페이스 메서드만 알아도 객체 호출이 가능하게 한다.
  • 객체가 인터페이스를 사용하면, 인터페이스 메서드를 반드시 구현해야하는 제약을 한다.

2-2) 인터페이스의 선언 방법 - exrtends, implements

  • 클래스에서 클래스로 선언할 경우 extends로 선언
  • 클래스에서 인터페이스로 선언할 경우 implements로 선언
  • 인터페이스에서 인터페이스로 선언할 경우 extends로 선언

2-3) 인터페이스에 다중 상속

자바에서 한 클래스에서 여러 인터페이스를 implements를 할 수 있다.

즉, 다중 상속이 가능

이는 상속과 반대되는 개념으로, 상속은 다중 상속이 불가능 하여 단일 상속만 허용된다.!

2-4) 인터페이스 정리

  1. 상속 방법 : class 클래스 (자식) implements클래스 (부모)
  2. 인터페이스는 추상메서드의 모음이다.
  3. 인터페이스는 반드시 부모 클래스에서 오버라이드를 받아서 사용해야한다. (추상메서드의 모음이기 때문!)
  4. 인터페이스 메서드만 알아도 객체 호출이 가능하다.
  5. 인터페이스는 다중 상속이 가능하다.

 

클래스 상속과 인터페이스의 차이

Class Interfacee

코드 공유 여부 코드의 공유 제공 코드의 공유 제공하지 않음
다중 상속 여부 다중 상속을 지원 하지 않음 다중 상속을 지원함

 

728x90
반응형
LIST

'일상 > WIL' 카테고리의 다른 글

5주차 WIL  (0) 2023.02.19
4주차WIL  (0) 2023.02.12
2주차 WIL  (0) 2023.01.29
1주차 WIL  (0) 2023.01.22
0주차 WIL  (0) 2023.01.15
728x90
반응형
SMALL

23.02.04

  • 27일 해야할 일
    • [x] SQL 공부
    • [x] 자바 이론 공부 (강의 1개 )
    • [x] 프로그래머스 1문제 풀기
    • [x] SA과제 하기
    • [x] Spring 강의듣기

주특기 입문 2일차! 

강의를 따라하고 과제를 하기에는... 시간이 촉박하군요... 그래도 입문주차 강의를 다 들었습니다!

^^ 와이파이 또 끊김 왜그러는거냐 나한테 ㅠㅠㅠ 전화도 안받아 ;;;; 주말마다 왜 이런 시련을 주시나여 ㅠㅠㅠ

오늘 들은 내용중에 기억에 남는 걸 적었습니다!

객체는 사물이라고 생각하면 편하다!

그안에 있는 기능을 메서드로 만드는 것!

예) 노트북의 브랜드로 들수 있다.

여기서 객체는 노트북이며.

노트북의 브랜드는 메서드라고 생각하면 편하다!

package com.example.springjpa.entity;

import jakarta.persistence.*;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter // 값을 가져올 때 쓰임 
@NoArgsConstructor  // 기본생성자 만들어줌
@Entity
public class Member {   //자바 클래스를 JPA를 사용해 Member라는 테이블을 만들기
    @Id
    @GeneratedValue (strategy = GenerationType.IDENTITY)
    private Long id;
    @Column(nullable = false)
    private  String memberName;

}
자바 클래스를 JPA를 사용해 Meber라는 테이블 만들기
1. Member 클래스 생성
2. @Entity 생성
3. @Getter 생성 //값을 가져올 때 쓰임
4. @NoArgsConstructor 생성 // 기본생성자 만들어줌
5. @Id 생성
6. @GeneratedValue (strategy = GenerationType.IDENTITY) 생성
7. private Long id; 
8. @Column(nullable = false)
9. private  String memberName;

해주면 한 열의 데이터 테이블을 완성!
기런식으로 쭉 만들면 데이터 테이블을 만들 수 있다!

shift + shift

alt + insert

각 테이블을 연결해주는 JpaRepository를 각 클래스와 설정값 (현재는 Long과 연결!)
을 상속해주는 interface 만들기
public interface MemberRepository extends JpaRepository<Member, Long> {
}

특정 이름 찾을 때 만드는 방법

기존 MemberRepository에 추가

Optional<Member> findByMemberName(String memberName);

본체인 클래스에 추가!

Member member = memberRepository.findByMemberName("삼식이").orElseThrow(
                () -> new RuntimeException("삼식이 없음")
        );
        System.out.println("member.getMemberName() = " + member.getMemberName());
728x90
반응형
LIST

'일상 > TIL' 카테고리의 다른 글

29일차  (0) 2023.02.06
28일차  (0) 2023.02.05
26일차  (0) 2023.02.03
25일차  (0) 2023.02.02
24일차  (2) 2023.02.01
728x90
반응형
SMALL
  • 26일 해야할 일
    • [x] SQL 공부
    • [x] 자바 이론 공부 (강의 1개 )
    • [x] 프로그래머스 1문제 풀기
    • [x] SA과제 하기
    • [x] Spring 노션 읽어보기!

 

오늘부터 주특기 입문 주차!!

어렵습니다..! 그래도 이클립스에선 하나하나 다 설정해야하는데 인텔리제이에서는 대부분 설치되어있어 편해요…ㅎㅎ 오늘 느낀 점은 맥을 사야할까 고민한 것 입니다.. 그리고 오늘 복습 세션에서 들은 내용 중에 stateful stateless의 차이점을 기록하라고 하셔서 정리가 잘되어있는 블로그를 발견했습니다~ 매번 늦게 자다보니 많이 피곤하네요 ㅠㅠㅠ 그래서 피로회복제 구입했습니다…

그리고 맥에서 하는 방법만 알려주셔서… 윈도우는 슬픕니다… 맥을 사야하나…흑흑

 

stateful stateless의 차이점

HTTP의 중요한 특징중 하나는 무상태 프로토콜을 지향한다는 것입니다.

무상태 프로토콜(Stateless)

  • 서버가 클라이언트의 상태를 보존하지 않는다.
  • 장점: 서버 확장성이 높음(스케일 아웃)
  • 단점: 클라이언트가 추가 데이터 전송

Stateful, Stateless 차이점

Stateful-상태 유지

예시)

예제를 바꾸면 고객이 점원 A한테 가격을 물어보면 점원이 100만원이라고한다. 좀 이따가 다른 점원에다가 고객이 2개 구매하겠습니다라고하면 점원B일 경우 뭘 두개를 구매한다는건지 당황스러울 것이다. 그러고나서 고객은 점원 C한테 신용카드로 구매하겠다고 말한다. 그러면 점원 C는 뭔 제품을 신용카드로 구매할지 당황스러울 것이다.

한 마디로, Stateful는 이 서버가 이전 클라이언트 상태를 보존한다. 위에 해당하는 예시가 상태 유지입니다.

Stateful(상태 유지), Statless(무상태) 차이점

  • Stateful(상태 유지): 중간에 다른 점원으로 바뀌면 안된다.(중간에 다른 점원으로 바뀔 때 상태 정보를 다른 점원에게 미리 알려줘야한다.)
  • Stateless(무상태): 중간에 다른 점원으로 바뀌어도 된다.
  • 갑자기 고객이 증가해도 점원을 대거 투입할 수 있다.
  • 갑자기 클라이언트 요청이 증가해도 서버를 대거 투입할 수 있다.
  • 무상태는 응답 서버를 쉽게 바꿀 수 있다. -> 무한한 서버 증설 가능

  • 클라이언트 A가 요청을하고 그 요청이 서버1에 들어오면 응답을 보내준다.

그런데 만약 중간에 서버가 장애나면?

클라이언트는 요청을 처음부터 다시 해야한다.

하지만 Stateless는 다른다!

Stateless는 클라이언트가 요청할 때부터 필요한 데이터를 다 담아서 보낸다. 클라이언트가 만약 서버1에 노트북 2개를 구매한다고 요청할경우 서버는 상태를 보관하지 않고 필요한 응답만한다.

그런데 이게 좋은 이유는 만약 서버가 갑자기 장애가 나면, 그러면 클라이언트 A는 중계서버가 2번에 던진다. 그러면 서버2가 응답을 보낸다.

무상태는 스케일 아웃이라고합니다. 서버를 늘리는게 스케일 아웃인데요. 예를 들자면, 이벤트 페이지에서 큰 이벤트면 백엔드에서 스케일 아웃으로 서버를 늘릴 수 있다.

Statless 실무 한계

  • 모든 것을 무상태로 설계 할 수 있는 경우도 있고 없는 경우도 있다.
  • 무상태 예) 로그인이 필요 없는 단순한 서비스 소개 화면
  • 상태 유지 예) 로그인
  • 로그인한 사용자의 경우 로그인했다는 상태를 서버에 유지
  • 일반적으로 브라우저 쿠키와 서버 세션등을 사용해서 상태 유지
  • 상태 유지는 최소한만 사용(꼭 필요한 경우에만 사용!)

단점: 데이터를 너무 많이 보낸다

https://highschool-ai-scientist.tistory.com/86#:~:text=- Stateful (상태 유지)%3A 중간에 다른 점원으로 바뀌면,- Stateless (무상태)%3A 중간에 다른 점원으로 바뀌어도 된다.

 

728x90
반응형
LIST

'일상 > TIL' 카테고리의 다른 글

28일차  (0) 2023.02.05
27일차  (0) 2023.02.04
25일차  (0) 2023.02.02
24일차  (2) 2023.02.01
23일차  (0) 2023.01.31

+ Recent posts