전체 글171 [Backend] API 패턴 - 레이어드 아키텍처 패턴 아키텍처 시스템 목적을 달성하기위해 시스템의 상호작용등의 시스템디자인에 대한 제약 및 설계 최적화를 목표로 두고 시스템 구성과 동작원리 그리고 시스템의 구성환경등을 설명 및 설계하는 청사진 또는 설계도 레이어드 아키텍처 Multi-tier 아키텍처 패턴이라고도 하는 레이어드 아키텍처는 코드를 논리적인 부분 혹은 역할에 따라 독립된 모듈로 나누어서 구성하는 패턴 백엔드 API 코드에 가장 널리 적용되는 패턴 중 하나 Spring, SpringBoot 프로젝트 진행 시, 코드 분리/관리에 대한 방법론 애플리케이션 구성 요소들을 수평으로 나눠서 관리함 프레젠테이션, 비즈니스, 퍼시스턴스, 데이터베이스로 나눠짐 수평적으로 나누었다는 것은 무엇일까 ? 아래의 그림처럼 레이어로 나눠 놓은 것들을 하나의 클래스, 하.. 2022. 12. 1. 20221130 주특기 입문 주차 - 5 오늘 아침 언어스터디 조원분들과 Java 공부를 했다. [Java] 상속 상속 이미 잘 개발된 클래스를 재사용해서 중복되는 코드를 줄여준다. 상속을 하더라도 자식 클래스가 부모의 모든 것들을 물려받는 것은 아니다. 부모 클래스의 private 접근 제한을 갖는 필드 jkadv.tistory.com [Java]타입 변환과 다형성 다형성 여러 가지 형태를 가질 수 있는 능력, 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 함으로써 다형성을 프로그램 적으로 구현. 부모클래스 타입의 참조변수로 자식클래스 jkadv.tistory.com 상속, 타입변환과 다형성에 대해 공부를 했는데 이게 이론적으로 공부를 했을때는 뭔말인지 답답했는데 확실히 코드를 쳐보고 어떻게 진행되는지 몸으로 부딪혀 보니 이해가 .. 2022. 11. 30. DB 트랜잭션(Transaction) 트랜잭션(Transaction) 하나의 처리를 여러 단계로 다루는 기능을 트랜잭션(Transaction)이라 한다. 하나의 처리를 Commit이라는 명령어를 수행하기전 마지막으로 한번 더 확인할 수 있는 기회를 줌으로써 좀 더 안정적인 데이터베이스 작업을 가능하게 한다. 상태를 변화시킨다는 것 → SQL 질의어를 통해 DB에 접근하는 것 - SELECT - INSERT - DELETE - UPDATE 작업 단위 → 많은 SQL 명령문들을 사람이 정하는 기준에 따라 정하는 것 예시) 사용자 A가 사용자 B에게 만원을 송금한다. * 이때 DB 작업 - 1. 사용자 A의 계좌에서 만원을 차감한다 : UPDATE 문을 사용해 사용자 A의 잔고를 변경 - 2. 사용자 B의 계좌에 만원을 추가한다 : UPDATE .. 2022. 11. 30. HTTP 프로토콜 HTTP(Hypertext Transfer Protocol) 인터넷상에서 데이터를 주고 받기 위한 서버/클라이언트 모델 애플리케이션 레벨의 프로토콜로 TCP/IP 위에서 작동 HTTP는 어떤 종류의 데이터든지 전송할 수 있도록 설계 HTTP로 보낼 수 있는 데이터는 HTML문서, 이미지, 동영상, 오디어, 텍스트 문서 등 여러 종류가 있다. 하이퍼텍스트 기반으로(Hypertext) 데이터를 전송하겠다(Transfer) = 링크 기반으로 데이터에 접속하겠다는 의미 TCP (전송 제어 프로토콜)은 두 개의 호스트를 연결하고 데이터 스트림을 교환하게 해주는 중요한 네트워크 프로토콜이다. TCP는 데이터와 패킷이 보내진 순서대로 전달하는 것을 보장해준다. Vint CERF와 Bob Kahn (당시 DARPA 과.. 2022. 11. 30. [프로그래머스/알고리즘] 로또의 최고 순위와 최저 순위 (자바/Java) 문제 설명 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 순위당첨 내용 1 6개 번호가 모두 일치 2 5개 번호가 일치 3 4개 번호가 일치 4 3개 번호가 일치 5 2개 번호가 일치 6(낙첨) 그 외 로또를 구매한 민우는 당첨 번호 발표일을 학수고대하고 있었습니다. 하지만, 민우의 동생이 로또에 낙서를 하여, 일부 번호를 알아볼 수 없게 되었습니다. 당첨 번호 발표 후, 민우는 자신이 구매했던 로또로 당첨이 가능했던 최고 순위와 최저 순위를 알아보고 싶어 졌습니다. 알아볼 수 없는 번호를 0으로 표기하기로 하고, 민우가 구매한 로또 번호 6개가 44, 1, 0, 0, 31 25라고 가정해보겠습니다. .. 2022. 11. 30. [Java]타입 변환과 다형성 다형성 여러 가지 형태를 가질 수 있는 능력, 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 함으로써 다형성을 프로그램 적으로 구현. 부모클래스 타입의 참조변수로 자식클래스의 인스턴스를 참조할 수 있도록 한다. ex)타이어 사용법은 모두 같지만 자동차에 어떤 타이어(객체)를 사용하느냐에 따라 성능이 달라짐. 다형성을 구현하려면 메소드 재정의와 타입 변환이 필요 메소드 재정의 + 타입변환 => 다형성 자동 타입 변환 다른 타입으로 변환하는 행위 클래스도 마찬가지로 타입 변환이 있는데, 클래스의 변환은 상속관계에 있는 클래스 사이에서 발생 자식은 부모타입으로 자동 타입 변환이 가능 B b = new B(); C c = new C(); D d = new D(); E e = new E(); A a1.. 2022. 11. 30. [Java] 상속 상속 이미 잘 개발된 클래스를 재사용해서 중복되는 코드를 줄여준다. 상속을 하더라도 자식 클래스가 부모의 모든 것들을 물려받는 것은 아니다. 부모 클래스의 private 접근 제한을 갖는 필드 및 메소드는 자식이 물려받을 수 없다. 부모와 자식 클래스가 서로 다른 패키지에 있다면, 부모의 default 접근 제한을 갖는 필드 및 메소드도 자식이 물려받을 수 없다. (default 접근 제한은 ‘같은 패키지에 있는 클래스’만 접근이 가능하게끔 하는 접근 제한자이기 때문) 그 이외의 경우는 모두 상속의 대상이 된다. //상위클래스 public class A{ int field1; void method1() { . . .} } //하위클래스 public class B extends A{// extends A .. 2022. 11. 30. 20221129 주특기 입문 주차 - 4 Spring강의를 어제 다 들었는데 오늘도 답답한 마음이 한번 다시 완강했다. 강의를 들으며 이해 안되는게 너무 많아서 조원분들이나 주변 분들에게 물어도 보고 매니저님에게도 물어도 보고 했는데 아직도 헷갈리는 부분이 많다. 그래서 그냥 무작정 개인과제에 부딪혀 보고 안되면 안되는대로 되면 되는대로 이해해가며 진행해보려고 했다. 아래의 요구사항을 기반으로 Use Case 그려보기 손으로 그려도 됩니다. 전체 게시글 목록 조회 API 제목, 작성자명, 작성 내용, 작성 날짜를 조회하기 작성 날짜 기 내림차순으로 정렬하기 게시글 작성 API 제목, 작성자명, 비밀번호, 작성 내용을 저장하고 저장된 게시글을 Client 로 반환하기 선택한 게시글 조회 API 선택한 게시글의 제목, 작성자명, 작성 날짜, 작성 .. 2022. 11. 29. 객체 지향 3요소 5원칙 3요소 캡슐화(Encapsulation) = 정보 은닉 프로그램 내에서 같은 기능을 목적으로 작성된 코드를 모아서 다른 곳(클래스)에서 안보이게 숨기는 것. 클래스 내에서 사용할 속성은 숨기고(Private), 객체가 수행할 기능은 공개(Public)하는 것을 의미한다. 상속(Inheritance) = 재사용 + 확장 클래스 사이에 부모와 자식 클래스가 존재할 수 있다는 뜻. 자식 클래스는 상속받은 부모 클래스의 속성 및 기능을 사용할 수 있다. 다형성(Polymorphism) = 사용편의 하나의 객체가 여러 가지 형태를 가질 수 있는 것. 오버라이딩(Overriding) 부모 클래스에 정의되어 있는 메서드를 자식클래스에서 재정의하여 사용하는 것. 오버로딩(Overloading) 같은 이름을 가진 메서드.. 2022. 11. 29. 이전 1 ··· 4 5 6 7 8 9 10 ··· 19 다음