전체 글
-
[JavaScript] alert 박스, onclick, function, EventListener 기초프로그래밍 언어/JavaScript 2022. 11. 11. 00:07
📑 자바스크립트로 html 변경 VSCode에서 Live Server 다운 후 코드 입력한 파일 우클릭 하고 아래 사진처럼 클릭 시 브라우저에 입력한 코드 결과 바로 보면서 작업할 수 있다. 자바스크립트를 이용하여 html의 문자를 변경하려고 한다. 어떻게 해야할까? 안녕하세요 위와 같이 html 태그에 id 값을 주고 스크립트 태그 안에서 태그 요소를 가져오고 html 문구를 바꿔주면 된다. 안녕하세요 안녕하세요 위의 예제를 살펴보면 getElementById로 요소의 id값을 가져오는 것은 동일하며, 각각 그 다음 dot(.)뒤에 원하는 작업을 적어주면 된다. 📑 기본적인 UI 만들기 웹 페이지에선 탭, 모달창, 서브메뉴 등 수백개의 동적 UI를 만들 수 있다. UI를 만드는 법은 아래와 같다. 📌 ..
-
[기술면접] 신입 개발자 Spring 예상 면접 질문취업준비/기술면접 2022. 11. 6. 22:58
📑 WS(Web Server)와 WAS 차이 📌 Web server : 웹서버는 소프트웨어랑 하드웨어로 구분되는데 하드웨어는 web 서버가 설치되어 있는 컴퓨터를 의미하고, 소프트웨어는 웹 브라우저 클라이언트로부터 HTTP 요청을 받아 정적인 컨텐츠를 제공하는 컴퓨터 프로그램을 의미한다. 정적인 컨텐츠를 제공하면 ,WAS 거치지 않고 자원 제공. 빠르게 제공 가능. 📌 WAS (Web Application Server) : WAS는 DB조회나 다양한 로직 처리를 요구하는 동적 컨텐츠를 제공하기 위해 만들어진 Application Server이다. HTTP를 통해 컴퓨터 장치에 애플리케이션을 수행해주는 미들웨어이다. JSP, SERVLET 등 구동 환경을 제공한다. 더보기 static : web serve..
-
[기술면접 sw] 아키텍처 패턴 vs 디자인 패턴 개념과 차이취업준비/기술면접 2022. 11. 6. 13:00
Spring MVC 패턴을 사용해 프로젝트를 진행했는데, 면접 중 Spring MVC 패턴을 왜 사용했는가 특징이 뭔가?에 대한 질문을 받았었고, 추가적으로 디자인패턴 관련 질문들을 종종 봤어서 이를 정리해볼까 한다. 정처기 공부하면서 디자인 패턴 종류 엄청 외웠었는데,, 다시 한 번 되새겨보자. 📑 소프트웨어 아키텍처란? : 소프트웨어를 구성하는 구성요소(모듈/컴포넌트) 간의 관례를 관리하는 시스템의 구조이다. 소프트웨어 아키텍처의 기본 원리는 다음과 같다. 📌 1. 모듈화 : 시스템의 기능들을 모듈 단위로 나눈 것. 이때 모듈 개수는 적당한 것이 좋다. 너무 많을 경우 통합 비용이, 너무 적을 경우 모듈 하나의 개발 비용이 많이 들게 된다. 📌 2. 추상화 : 전체적이고 포괄적인 개념 설계 -< 차례..
-
[Spring Boot] 필터와 인터셉터 차이, 로그인 인증 체크하기Back-End/Spring Boot 2022. 11. 2. 14:30
지난번 포스팅에서 간단히 Filter, Interceptor, APO의 차이점과 개념에 대하 알아봤다. 이번엔 필터와 인터셉터로 로그 남기기와 로그인한 사용자만 특정 화면에 접근할 수 있도록 인증 체크하는 예제를 통해 알아보려고 한다. https://wonisdaily.tistory.com/89 [Spring] Filter, Interceptor, AOP 차이점 자바 웹 개발을 하다보면 공통적으로 처리해야 할 업무들이 많다. 예를 들어 로그인 관련(세션체크)처리, 권한체크, PC와 모바일웹의 분기처리, 로그, 페이지 인코딩 변환 등등. 공통 관련된 코드 wonisdaily.tistory.com 📑 공통 관심사 로그인한 사용자만 상품 관리 페이지에 들어갈 수 있어야한다. 상품 관리 컨트롤러에서 로그인 여부..
-
[ch14 Stream] 스트림 생성과 연산, Optional<T>프로그래밍 언어/JAVA 2022. 11. 1. 18:07
📑 스트림(Stream) 이란? 지금까지 많은 수의 데이터를 다룰 때, 컬렉션이나 배열에 데이터를 담고 원하는 결과를 얻기 위해 for문과 Iterator를 이용해 코드를 작성해왔다. 그러나 이런 방식으로 작성된 코드는 너무 길고 알아보기 어렵다. 또 문제는 데이터 소스마다 다른 방식으로 다뤄야한다. 예를 들어 List를 정렬할때는 Collection.sort()를 사용해야하고, 배열을 정렬할 때는 Arrays.sort()를 사용해야한다. 이런 문제점들을 해결하기 위해 만든 것이 '스트림(stream)'이다. 스트림은 데이터 소스를 추상화하고, 데이터를 다루는데 자주 사용되는 메서드들을 정의해 놓았다. 데이터 소스를 추상화하였다는 것은, 데이터 소스가 무엇이던 간에 같은 방식으로 다룰 수 있게 되었다는 ..
-
[Spring Boot] Bean Validation , 한계와 객체 분리Back-End/Spring Boot 2022. 11. 1. 12:16
📑 Bean Validation이란? 이전 포스팅의 검증 로직을 살펴보면 아래와 같이 직접 코드로 작성해야했다. 특정 필드에 대한 검증 로직은 대부분 빈 값인지 아닌지, 특정 크기를 넘는지 아닌지와 같이 매우 일반적인 로직이다. public String addItemV4(@ModelAttribute Item item, BindingResult bindingResult, RedirectAttributes redirectAttributes, Model model) { //검증에 실패하면 다시 입력 폼으로 if(bindingResult.hasErrors()){ log.info("errors ={}", bindingResult); return "validation/v2/addForm"; } log.info("o..
-
[Spring Boot] 검증 요구사항 ( fieldError, rejectValue() ..)Back-End/Spring Boot 2022. 10. 28. 10:46
웹 서비스는 폼 입력 시 오류가 발생하면, 고객이 입력한 데이터를 유지한 상태로 어떤 오류가 발생했는지 친절하게 알려줘야한다. 그러기 위해서 검증이 필요한 것! 컨트롤러의 중요한 역할 중 하나는 HTTP 요청이 정상인지 검증하는 것이다. 그리고 정상 로직보다 검증 로직을 잘 개발하는 것이 더 어려울 수 있다. 고객이 만약 상품 등록 폼에서 상품명을 입력하지 않거나, 가격 , 수량 등 검증 범위를 넘어서면 서버 검증 로직이 실패해야한다. 이렇게 검증이 실패한 경우 고객에게 다시 상품 등록 폼을 보여주고, 어떤 값을 잘못 입력했는지 친절하게 알려줘야한다. 스프 검증에서 사용하는 주요 인터페이스와 클래스 등 점진적으로 하나씩 살펴보며 점점 나은 선택지를 적어보려고 한다. 가장 많이 사용하고 편리한 방법은 마지..
-
[Spring Boot] 메시지, 국제화 파일 생성 후 타임리프에 적용해보기Back-End/Spring Boot 2022. 10. 26. 12:17
📑 메시지 (messages) 만약, 상품을 시스템이 있을 때 상품명이라는 단어를 모두 상품이름으로 고쳐달라고 하면 어떻게 해야할까?? 상품명 여러 화면에 보이는 label 태그에 단어를 변경하려면 각각의 화면들을 찾아가서 변경해야한다. 만약 화면이 수백, 수천개가 된다면,,? 너무 번거로운 작업이다. 이런 다양한 메시지를 한 곳에 관리하도록 하는 기능을 메시지 기능이라고 한다. 🎃 1.messages.properties라는 메시지 관리용 파일을 만들고 item=상품 item.id=상품 ID item.itemName=상품명 item.price=가격 item.quantity=수량 🎃 2. 각 HTML들에서 해당 데이터 key 값으로 불러 사용하는 것이다. 📑 국제화 국제화는 메세지에서 한 발 더 나가는 개..