분류 전체보기 381

2022 마스터즈 코스(백엔드) 21일차 회고(2022. 2. 7.) - "마침내 접하게 된 Docker"

해당 글은 코드스쿼드 2022 마스터즈 코스 "Java 웹 백엔드" 과정을 수강하면서 학습한 내용 등에 대한 회고 글입니다. :) 수강 회고 오늘로 CS10 과정의 마지막 주차가 시작되었다. 오늘 오전 스크럼을 통해 이번 주의 소그룹원들과 인사를 나누었는데 반가운 얼굴들이 많이 보였다. 모두 지난 1~4주차간 뵈었던 팀원들이었고 면접 때 같은 조로 뵈었던 분들도 있어 특히나 반가웠었다. 운이 좋게 훌륭한 팀원들을 만난 만큼 또한 CS10 과정의 마지막 주차인만큼 최선을 다해 한 주를 보내야 겠다는 생각이 들었다. 오늘은 9번째 CS 미션으로 도커(Docker)와 데이터베이스 관련한 미션이 공개되었다. 데이터베이스는 이전 부스트코스 "웹 프로그래밍(풀스택)" 과정을 통해 다루어본 적이 있어 익숙했지만 도커..

정규 표현식을 통해 사용자 입력 데이터(이메일, 전화번호 등) 유효성 검사하기

정규 표현식이란? 정규 표현식(Regular Expression)은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어이다. 웹에서는 주로 브라우저 단에서 사용자가 입력한 데이터가 올바르게 입력되었는지 검사(유효성 검사)하기 위해 정규 표현식을 사용한다. 만일 사용자가 회원 가입을 위해 ID, 비밀번호, 이메일, 전화번호 등을 작성하는데 중간에 실수로 데이터를 잘못 입력했다고 가정해보자. 사용자가 최종적으로 "완료" 버튼을 눌렀을 때(서버로 데이터가 전송되었을 때) 잘못된 데이터가 입력되었다면 페이지 리로드가 됨과 동시에 기존 작성했던 정보들이 초기화 되면서 다시 작성해야하는 불편함이 생긴다. 이때 사용자가 특정 항목에 대해 입력을 마치면 그때 그때 정규표현식을 통해 데이터 유효성 검사를..

서버에 이미지 파일 전송하기(feat. FormData, Ajax)

이미지 파일 업로드하기 웹 브라우저단에서 서버로 이미지 파일을 전송하고 싶은 경우에는 어떻게 할까? 우선 당연히 브라우저 단에 이미지 파일이 업로드가 되있어야 한다. 이때 HTML form 태그를 이용하면 되는데, form 태그 내 input 태그의 type을 file로 설정하여 이미지 파일을 업로드 받을 수 있다. 여기서 중요한 것은 form 태그의 속성값 중 enctype(인코딩 타입)을 "multipart/form-data"로 설정해주어야 한다는 것이다. 여기서 multipart란 웹 브라우저가 서버에 요청을 보낼 때 HTTP 프로토콜 바디 부분에 데이터를 여러 부분으로 나눠서 보내겠다는 것이다. 그러면 왜 굳이 데이터를 여러 부분으로 나누는 것일까? 그 이유는 HTTP Request Body에 들..

캡슐화(정보 은닉)를 위한 Java의 접근 제어자 이해하기

캡슐화란? 객체 지향에는 대표적인 4대 특성이 있는데 바로 추상화, 상속, 다형성, 캡슐화이다. 이 중 캡슐화는 정보 은닉이라고도 하는데, 서로 관련 있는 속성과 메서드를 클래스에 하나로 묶고 사용자가 필요로 하는 인터페이스만 제공하고, 나머지 내부적으로 구현된 내용은 외부로부터 감추는 것을 의미한다. 이덕에 사용자 입장에서는 별도로 복잡한 코드를 실행하지 않고(사용자의 실수 방지) 특정 인터페이스만 호출함으로써 원하는 결과를 얻을 수 있게 하며, 객체 입장에서는 클래스 내부에 선언된 데이터를 보호(수정 방지)할 수 있게 된다. 아울러 외부에 공개되지 않은 멤버의 경우 해당 클래스 외부로의 파급 효과가 없으므로 수정이 용이하다는 장점도 있다. 이때 자바에서 구현 내용을 내부에 감추는 방법으로 접근 제어자..

Technology/Java 2022.02.05

2022 마스터즈 코스(백엔드) 20일차 회고(2022. 1. 28.) - "지난 1월 되돌아 보기"

해당 글은 코드스쿼드 2022 마스터즈 코스 "Java 웹 백엔드" 과정을 수강하면서 학습한 내용 등에 대한 회고 글입니다. :) 수강 회고 벌써 2022년의 1월이 마무리가 되어가며 오늘로 마스터즈 코스 4주차 과정까지 마무리가 되었다. 항상 금요일에 회고를 작성할 때면 마음이 전보다(월요일~목요일) 훨씬 가볍다. 더욱이 오늘은 과정상 1달의 마지막 날이기 때문에 감회가 새롭다. 지난 한달을 되돌아 보면 개인적인 학습 성취도는 어느정도 만족하는 편이다. CS10 미션 과제를 해결하기 위해 삽질도 많이 했었지만 그 과정에서 배우는 것들이 정말 많았다. 문제를 제대로 이해하지 못해 삽질한 적도 많았지만 오히려 그 덕분에 개발 공부는 더욱 제대로 되었다....^^;;(이게 좋은건지 나쁜건지..) 아울러 과제..