본문 바로가기

TIL

(35)
프로그래머스_핸드폰 번호 가리기 핸드폰 번호 가리기 문제 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요. 제한사항 s는 길이 4 이상, 20이하인 문자열입니다. 입출력 phone_number return "01033334444" "***4444" "027778888" "*****8888" 입출력 예 설명 없음 풀이 과정 뒷 4자리를 제외한 숫자를 마스킹 하므로 받아오는 phone_number의 길이에서 4를 뺴준 만큼 "*" 로 answer에 담아준다. 나머지 4자리는 String(문자열)으로 받아오는 phone..
[WIL] 항해99 6주차 항해 6주차 마무리.. 처음 프론드와 협업을 진행하였다. 책을 같이 읽고 모임을 만드는 플랫폼을 만들어보았다. (https://www.notion.so/56c39e3254f2440b9152488e39535158) # 1. 첫 협업을 진행하며 느낀 아쉬운 점 아쉬운점이 너무 많았다... 내가 맡은 부분은 로그인,회원가입 Spring Security와 JWT를 맡았다. 주특기 과정에서 Security를 사용해서 로그인을 구현 해보았지만 jwt를 이용해서 로그인 구현은 처음이였다. 제공된 강의가 있었지만 이해하는데 많이 힘들었다. 구글링도 많이 하고 유튜브에서 강의도 많이 찾아봤지만 100%이해가 되진 않는다. 이해가 안된 부분을 틈틈히 찾아봐야겠다. 다른 아쉬웠던 부분은 JPA에 대한 이해도가 많이 없었다...
[TIL] 항해99 Day 38 항해 38일차 2022.02.16 jpa 활용하는 방법이 아직까지 익숙하지 않아 프로젝트를 강의를 보며 다시 한번 정리해보려고 한다. 기능 목록 회원 기능 회원 등록 회원 조회 상품 기능 상품 등록 상품 수정 상품 조회 주문 기능 상품 주문 주문 내역 조회 주문 취소 기타 요구사항 상품은 재고 관리가 필요하다. 상품의 종류는 도서, 음반, 영화가 있다. 상품을 카테고리로 구분할 수 있다. 도메인 모델과 테이블 설계 회원, 주문, 상품의 관계 : 회원은 여러 상품을 주문할 수 있다. 그리고 한 번 주문할 때 여러 상품을 선택할 수 있으므로 주문과 상품은 다대다 관계다. 하지만 이런 다대다 관계는 관계형 데이터베이스는 물론이고 엔티티에서도 거의 사용하지 않는다. 따라서 그림처럼 주문상품이라는 엔티티를 추가해..
[TIL] 항해99 Day 33 항해 33일차 spring 주특기 심화 과정이 끝나고 팀프로젝트를 시작했다. 처음으로 프론트앤드와 협업하여 진행하는 프로젝트 이기에 더욱 부담된다. 새로운 팀원들과 만나 API설계를 하고 백앤드 팀원들과 DB설계까지 하였다. ) 기능 메인페이지 a. 모임 목록이 보여지는 페이지 b. 로그인 화면 이동 기능 c. 회원가입 화면 이동 기능 d. 모임 만들기 기능 e. 모임 상세페이지로 넘어가는 기능 상세페이지 댓글 생성 기능 댓글 수정 기능 : 작성자만 가능함. 로그인 페이지 이동 : 댓글 작성 시 로그인이 필요하다는 알람을 띄우고 로그인 페이지로 이동시킨다. 책 url 버튼 : 해당 책의 상세정보가 있는 서점 페이지로 이동 로그인 페이지 로그인 정보 (아이디, 비밀번호)를 받아서 로그인 시킴 회원가입 페이..
[TIL] 항해99 Day 32 항해 32일차 Enum Enum은 열거형이라고 말하며, 서로 연관있는 상수들의 집합이다. 필요한 상수들을 각 클래스에서 그 때 그 때 정해서 써도 되지만, 이렇게 한 클래스로 두면 여기저기 가져다 쓸 수 있어 편하다. 열거형을 정의하는 방법은 간단하다. 다음과 같이 괄호{ }안에 상수의 이름을 나열하기만 하면 된다. enum 열거형이름 { 상수명1, 상수명2, ... } 이 열거형에 정의된 상수를 사용하는 방법은 ‘열거형이름.상수명’이다. public class MyClass{ // enum enum UserRole { USER, ADMIN } // 메인 메소드 public static void main(String args[]) { System.out.println(UserRole.USER); Syst..
[TIL] 항해99 Day 25 항해 25일차 1. 일반적인 웹 애플리케이션 계층 구조 컨트롤러: 웹 MVC의 컨트롤러 역할 서비스: 핵심 비즈니스 로직 구현 도메인: 비즈니스 도메인 객체, 예) 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리됨 리포지토리: 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 2. 클래스 의존관계 아직 데이터 저장소가 선정되지 않아서, 우선 인터페이스로 구현 클래스를 변경할 수 있도록 설계 데이터 저장소는 RDB, NoSQL 등등 다양한 저장소를 고민중인 상황으로 가정 개발을 진행하기 위해서 초기 개발 단계에서는 구현체로 가벼운 메모리 기반의 데이터 저장소 사용 3. 스프링 빈과 의존관계 컴포넌트 스캔과 자동 의존관계 설정 import hello.hellospring.service.Me..
[TIL] 항해99 Day 24 항해 24일차 1. thymeleaf 템플릿엔진 동작 확인 컨트롤러에서 리턴 값으로 문자를 반환하면 뷰 리졸버( viewResolver )가 화면을 찾아서 처리한다. 스프링 부트 템플릿엔진 기본 viewName 매핑 resources:templates/ +{ViewName}+ .html 2. 스프링 웹 개발 기초 정적 컨텐츠 MVC와 템플릿 엔진 API 정적 컨텐츠 이미지 3. MVC와 템플릿 엔진 MVC: Model, View, Controller 3-1. 템플릿 엔진 방식 @RequestParam 외부에서 파라미터를 받을때, Model에서 담고 view에서 랜더링 할때 사용 key = "name:" , value = name 3-2. API방식 @ResponseBody 를 사용하면 뷰 리졸버( vie..
[TIL] 항해99 Day 23 항해 23일차 명절이지만... 우리는 명절 없이 달린다. 개인 프로젝트 진행 중 게시물을 작성하는 post 방식에서 계속해서 오류가 발생했다. There was an unexpected error (type=Method Not Allowed, status=405). Request method 'POST' not supported 또 열심히 구글링을 해가며 해답을 찾아갔다. " @PostMapping annotation이 빠져있을 경우, 주고받는 방식이 맞지 않아서(예로 보낼때는 POST로 전송하지만 GET방식으로 받게 설정되있는지) 위와 같은 에러가 발생한다고 한다. 하지만 모든 경우를 체크해보았지만 모두 잘 연결되어 있었고 내가 봤을때 이상한 점이 전혀 없었다. 열심히 아주 열심히 삽질?을 하던 중 혹..
[TIL] 항해99 Day 22 항해 22일차 두번째 스프링 개인 과제를 하고있다... 스프링 봐도봐도 어렵다.. 이번 과제에 회원가입 / 로그인 기능을 추가해야 하기에 스프링 시큐리티를 찾아보았다. 1. 스프링 시큐리티 '스프링 시큐리티' 프레임워크는 스프링 서버에 필요한 인증 및 인가를 위해 많은 기능을 제공해 줌으로써 개발의 수고를 덜어 준다. import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.Enabl..
[TIL] 항해99 Day 20 항해 20일차 1. 스프링 MVC 이해 - Request Controller 와 HTTP Request 메시지 2. DI (의존성 주입) Controller 5 개가 각각 Service1 을 생성하여 사용 중 Repository1 생성자 변경에 의해.. ⇒ 모든 Contoller 와 모든 Service 의 코드 변경이 필요 "강한 결합"을 해결 방법 각 객체에 대한 객체 생성은 한번만 한다. 생성된 객체를 모든 곳에서 재사용 한다. 3. 웹의 인증 및 인가 인증 (Authentication): 사용자 신원을 확인하는 행위 인가 (Authorization): 사용자 권한을 확인하는 행위 4. 쿠키와 세션 쿠키와 세션 비교 스프링..어렵다...