전체 글 234

[SPRING] MVC 패턴

Model - View - Controller 3가지 역할로 프로젝트 구성요소를 구분한 패턴 Model 어플리케이션이 무엇을 할 것인지 정의하는 부분즉 DB와 연동하여 사용자가 입력한 데이터나 사용자에게 출력할 데이터를 다룸 View 사용자에게 시각적으로 보여주는 부분 (UI) Controller Model이 데이터를 어떻게 처리할지 알려주는 역할. 사용자에 의해 클라이언트가 보낸 데이터가 있으면 모델을 호출하기전에 적절히 가공을 하고 모델을 호출. 그런다음 모델이 업무 수행을 완료하면 그 결과를 가지고 View에게 전달하는 역할. => 사용자가 URL을 호출하면 Controller에서 요청들을 받고 그 안에서 로직이나 데이터가 필요하면 Model에서 호출해서 모델에 구성된 로직이나 DB에 접근해서 데이..

[SPRING] JPA / ORM

JPA JPA(Java Persistence API)는 자바 진영의 ORM 기술 표준 JPA가 제공하는 API를 사용하면 객체를 DB에 저장하고 관리할 때, 개발자가 직접 SQL을 작성하지 않아도 된다. JPA가 개발자 대신 적절한 SQL을 생성해서 DB에 전달하고, 객체를 자동으로 Mapping 해준다. JPA는 내부적으로 JDBC API를 활용하는데, 개발자가 직접 JDBC API를 활용하면 패러다임 불일치, SQL 의존성 등으로 인해 효율성이 떨어진다. 이 때, JPA를 활용한다면 모든 SQL에 대해 개발자 대신 JPA가 자동으로 해결해 준다는 점에서 생산성을 크게 높인다. ORM ORM(Object-Relational Mapping)은 객체와 관계형 DB를 매핑한다는 뜻 ORM 프레임워크를 사용하..

[JAVA] 기초 - 다시 정리하는 기본 개념

분명히 공부도 하고 정리도 했는데 남는 게 없다.. 원래 이런가? 정의를 정확하게 외우는 것은 기술면접 전에 해야할 일이고 어떤때에 어떤 걸 써야 한다 정도로 알아두기!! 객체지향 프로그래밍 OOP 프로그래밍에 사용 될 데이터의 상태와 행위를 객체로 만들어, 객체 간의 상호작용을 통해 비지니스 로직을 구성하는 프로그래밍 기법 - 특징 상속 : 자식클래스가 부모클래스의 기능과 상태를 물려받아, 그대로 사용하거나 필요한 부분만 수정할 수 있도록 하는 것 추상화 : 불필요한 부분을 지우고 필요한 핵심만을 정의해 두는 것. 사물을 추상화 한 후 필요한 객체에서 상속 받아 필요에 맞게 기능을 재정의해 사용할 수 있도록 함 캡슐화 : 비슷한 속성과 메소드들을 하나의 클래스로 모은 것. 외부 접근으로부터 데이터를 지..

22.08.17 (수) 17일 차

오늘 한 것 [개인과제] usecase 그리기 [개인과제] 질문 답변 적기 알고리즘 1문제 비밀번호 확인 구현 부분 블로그 정리 [개인과제] 조회기능 수정 git readme 작성 팀 블로그 정리 오늘 배운 것 2022.08.17 - [알고리즘/JAVA] - [프로그래머스] 같은 숫자는 싫어 2022.08.17 - [SPRING] - [SPRING]입문주차 과제 비밀번호 확인 API 만들기 2022.08.17 - [SPRING] - [SPRING] 입문주차 과제 - 전체 게시글 목록 조회 / 게시글 조회 2022.08.17 - [JAVA] - [JAVA] objects.equals() 정리 [개인과제] 질문답변은 깃에 올렸다. InteliJ로 바로 comit & push 하기 (알아서 merge해줌..)..

🔔[항해99]/TIL 2022.08.18

[SPRING] 입문주차 과제 - 전체 게시글 목록 조회 / 게시글 조회

03 주차 과제를 잘해낸 줄 알았더니 아니었다 ... 전체 게시글 조회 시 : 제목/ 작성자명/ 작성 날짜 가 떠야하고 게시글 조회 시 : 제목/ 작성자명/ 작성날짜 / 작성내용 이 떠야했다.. 어제까지 만든건 모두 다 떴다 ...^^ 작성날짜/수정날짜/id/제목/내용/작성자/내용/비밀번호 모두 .. 배포까지 다하고나서야 알게되어서 ... ㅎㅎ 그치만 제출 전까지 시간이 남은 상태에서라도 알게되었으니까 수정해야지..ㅎ [Controller] @GetMapping("/api/post") public List getPosting() { return postingRepository.findAllByOrderByModifiedAtDesc(); } Entity가 리스트 형태로 나온다 그렇다면 일단 Entity로 ..

[JAVA] objects.equals() 정리

Objects.equals() : 객체의 주소를 비교 즉, 같은 값을 가진 객체라고 하더라도 따로 생성되었다면 False. //객체 비교시 !! public class Main{ public static void main(String args[]){ Name name1 = new Name("Ellen"); Name name2 = new Name("Ellen"); Name name3 = name1; System.out.println(name1.equals(name2)); // False System.out.println(name1.equals(name1)); // True } 다같은 이름으로 보이는데 False가 나옴 => 따로 생성되어 주소값이 다르기 때문! String aa = "cc"; String ..

[SPRING]입문주차 과제 비밀번호 확인 API 만들기

03주차 과제를 하면서 다른 부분은 강의부분을 보면서 그대로 작성하면서 이해했는데 새로운 기능이 더 있었다. 이론은 알아도.. 처음부터 해보려니 안되는 것,,, ^^ 고생하면서 했었어서 정리해두려고 한다. API 명세서중 비밀번호 확인 부분이다. 비밀번호를 보내면 db에 저장된 값과 비교해보고 true / false로 응답이 오면 된다. Controller에 api를 적어주려면 일단 비밀번호확인에대한 서비스 부분을 먼저 구현해야 한다. 서비스 부분에 만들려하니 매개변수로 비밀번호만 따로 dto를 따와서 입력받은 비밀번호와 비교해야 한다!! 그렇다면 비밀번호 DTO를 먼저 따줘야 한다! (순서는 솔직히 상관 없을 듯) 1. requestDto =>PostingPasswordDto먼저 만들어줌 @Getter..

[GIT] 마크다운 작성 팁 (Readme.md) / 이미지 올리기, 이모지 올리기, 링크연결 방법, 체크박스 만들기,테이블 작성 꿀팁 사이트

이제 본격적으로 깃허브를 활용하려고 하다보니 readme의 중요성에 대해서도 알게되었다. 일단 한 눈에 보기도 좋은게 집중도 잘되고 편-안하니까 Github 프로젝트의 Issue 탭->new Issue 업로드하고 싶은 이미지를 내용칸으로 드래그한다 ![Uploading {image file name}]() => html 태그로 바뀐다 4. 복사해서 readme에 붙여넣기 하면된다! 요새 힙한 포트폴리오는 이모지를 잘 활용한 것이라고 생각한다. (그러기엔 황량한 내 블로그) [이모지] : https://gist.github.com/rxaviers/7360908 Complete list of github markdown emoji markup Complete list of github markdown emo..

GIT HUB 2022.08.17

22.08.16 (화) 16일 차

오늘 한 것 개인과제 - 기능구현 postman 사용방법 배우기 개인과제 - 배포 개인과제 - github연동 aws 계정 해킹당한거 알아내고 support에 문의하기 ..ㅎㅎ 오늘 배운 것 rds - mysql 연결하고 서버연동 ec2서버 구매해서 nohup으로 서버배포하기 spring api 짤때는 url을 잘 확인하자.. 내일 할 것 개인과제 - usecase 그리기(오전) 개인과제 - 질문 답변 적기(오후) 입문학습자료03 ->가능하면 블로그에 정리(오후) 알고리즘 1문제 - >블로그에 정리 (오전) 비밀번호 확인 구현 부분 블로그 정리(오전) JAVA 개념 다시 잡기 SPRING 개념 블로그 정리 (팀과제 질문 부분 모두 정리해두면 좋을듯)(오후) 오늘 그래도 개인과제를 배포까지 (원하던데 까지..

🔔[항해99]/TIL 2022.08.17

2주차 8/8~8/13 WIL

14주 프로그램 중에 2주차가 끝났다! 까마득하고 모르겠던 자바도 어느정도는 익숙해진 느낌이다. 아예 모르겠던 알고리즘도 가끔은 이렇게 하면 되지 않을까?! 하면서 감은 잡은 것 같은 느낌이 든다 ... (아직도 어렵지만) 멘토님들 말씀대로 자바 기초를 잡는데에 초점을 잡았다. 생소한 용어들을 완전히까지는 아니지만 어느정도는 낯설지는 않도록 자주보려고 노력했다 1주차에는 프로젝트때문에 눈물로 지새웠다면 이번주차는 그래도 차근차근히 기본기를 다지자는 마음으로 임했다. 알고리즘 문제를 매일 잘 풀어내기만 하면 되었기에 공부할 시간이 어느정도는 있어서 다행이었다. 그래도 역시 알아야 할 내용은 산더미에 알고리즘이 그리 쉽게 풀리는 것도 아니어서 취침시간이 2,3시 였던건 함정이다... 그래도 나는 매일 성장하..

🔔[항해99]/WIL 2022.08.14

22.08.13 (토) 13일 차

오늘 한 것 프로그래머스 자바입문 P9,P10 완강 스프링 스파르타 2주차,3주차(5까지) 알고리즘 1문제 (프로그래머스 레벨1) 오늘 배운 것 SPRING의 구조 Controller, Service, Repository, JPA,MySQL,H2,DTO Lombok사용하기 API 설계 방법 ARC 사용하기 2022.08.13 - [JAVA] - [JAVA] 예외처리(Exception) / Throws 2022.08.13 - [알고리즘/JAVA] - [프로그래머스] 약수의 합 내일 할 것 JAVA 기초 알아야할 것 정리 (기술면접시 유용) 팀 과제 - DIY Q&A 할만한 키워드 찾기 WIL 스파르타 4주차,5주차 (끝내버리기..) 개인 과제 API 설계 먼저하기! 아침에 겨우 자바입문 수업을 완강하고 깔..

🔔[항해99]/TIL 2022.08.13

[JAVA] 예외처리(Exception) / Throws

Exception 프로그램실행중 예기치 못한 사건을 예외라고 한다. 예외 상황을 미리 예측하고 처리할 수 있는데, 이렇게 하는 것을 예외 처리라고 한다. public class ExceptionExam { public static void main(String[] args) { int i = 10; int j = 5; int k = i / j; System.out.println(k); System.out.println(main 종료!!); } } 위 코드에서 j를 0으로 바꾸면 Excption 발생 j를 0으로 바꾸면 ArithmeticException이 발생하면서 프로그램이 종료된다. Java는 정수를 정수로 나눌때 0으로 나누면 안된다.0으로 나누면 오류가 발생하는 것입니다. 예외 처리 프로그래머는 ..

22.08.12 (금) 12일 차

오늘 한 것 프로그래머스 자바 입문강의 P8 스프링 스파르타 강의 1주차 Spring 환경설정 - 한글깨짐 수정! 3주차 팀과제 - 내파트 질문 답변 작성 오늘 배운 것 2022.08.12 - [JAVA] - [JAVA] 인터페이스 2022.08.12 - [JAVA] - [JAVA] 내부클래스 restAPI 에서 PUT 과 PATCH의 차이 스프링 프로젝트 만들기 RestController 만들기 내일 할 것 프로그래머스 자바입문 P9,P10 완강 스프링 스파르타 2주차,3주차 ,.. (볼수 있는데 까지) JAVA 기초 알아야할 것 정리 (기술면접시 유용) 팀 과제 - DIY Q&A 할만한 키워드 찾기 이번주 WIL 고민해보기 새로운 주차 시작이다. 오늘부터는 Spring 시작.. 후 아직 자바도 두루뭉..

🔔[항해99]/TIL 2022.08.12

[JAVA] 내부클래스

클래스 안에 선언된 클래스 어느 위치에 선언하느냐에 따라서 4가지 형태가 있을 수 있다. 첫번째는 클래스 안에 인스턴스 변수, 즉 필드를 선언하는 위치에 선언되는 경우. 보통 중첩클래스 혹은 인스턴스 클래스라고 한다. 내부에 있는 Cal객체를 생성하기 위해서는, 밖에는 InnerExam1의 객체를 만든 후에 InnerExam1.Cal cal = t.new Cal();과 같은 방법으로 Cal객체를 생성한 후 사용한다. public class InnerExam1{ class Cal{ int value = 0; public void plus(){ value++; } } public static void main(String args[]){ InnerExam1 t = new InnerExam1(); InnerE..