전체 글 19

[스프링+리액트 웹 만들기] #2. DB 설계하기

이전 글 : [스프링+리액트 웹 만들기] #1. 환경 세팅하기 DB로는 MySQL을 이용했다. formapp 이라는 이름으로 스키마를 생성했고, 대략적인 구조는 아래 그림과 같다. 1. USER user 정보를 저장해두는 테이블. userIdx가 PK로 들어가고 id와 password 칼럼을 생성했다. password가 그대로 DB에 들어가는 보안 문제를 막기 위해서는 암호화 시킨 값을 password 대신 DB에 저장하도록 하는 것이 좋지만, 로컬에서만 돌려보는 개인 공부용 프로젝트이므로 그냥 진행했다..^0^ 2. FORM 설문 정보 저장해두는 테이블. formIdx를 PK로 가지고, 작성자 id, 설문 제목, 생성 시간을 칼럼으로 두었다. 생성 시간인 createdAt 칼럼은 디폴트를 CURRENT..

💻/SPRING + REACT 2021.03.24

Inside JavaScript - 내용정리(2)

4. 함수와 프로토타입 체이닝 함수 리턴 : 규칙 1) 일반 함수나 메소드는 리턴값을 지정하지 않을 경우, undefined 가 리턴된다 규칙 2) 생성자 함수에서 리턴값을 지정하지 않을 경우 생성된 객체가 리턴된다 별도의 리턴값 지정 안했을 경우, this로 바인딩된 새 객체가 리턴. 따라서 생성자 함수에서는 일반적으로 리턴값 지정 안함. 명시적으로 리턴값을 넘기면 해당 객체나 배열이 리턴되지만, 객체가 아닌 boolean, number, string의 경우는 무시되고 this로 바인딩된 객체가 리턴. 프로토타입 체이닝 : 자바스크립트의 객체 생성 규칙 모든 객체는 자신을 생성한 생성자 함수의 prototype property가 가리키는 프로토타입 객체를 자신의 부모 객체로 설정하는 [[Prototyp..

💻/BOOK 2021.01.28

Inside JavaScript - 내용 정리(1)

1. 자바스크립트 기본 개요 활용 범위 : 웹, 서버, 애플리케이션 핵심 개념 : 1) boolean, number, string, null, undefined 제외 나머지는 모두 객체. (boolean, number, string은 객체처럼 다룰 수도 있음) 2) 함수도 객체로 취급. First class object. 3) 모든 객체는 숨겨진 링크인 프로토타입 가짐. 해당 객체를 생성한 생성자의 프로토타입 객체를 가리킴. 4) 자신만의 유효 범위를 갖는 실행 컨텍스트를 만들고 그 안에서 실행이 이루어짐. 이 과정에서 클로저 구현 가능. 3. 자바스크립트 데이터 타입과 연산자 기본 타입 : number, string, boolean, null, undefined 그 자체가 하나의 값을 나타냄. 정수, ..

💻/BOOK 2021.01.27

[스프링+리액트 웹 만들기] #1. 환경 세팅하기

이전 글 : [스프링+리액트 웹 만들기] #0. 프로젝트 개요 항상 제일 어렵고 예외 상황도 많고 알 수 없는 에러도 많은 환경 세팅부터! 저장소에 front와 back으로 폴더를 나누어서 front 폴더는 VS Code로, back 폴더는 intelliJ로 접근했다. (처음 프로젝트를 생성하고 시작할 때는 이클립스 EE를 이용했고, 나중에 이를 intelliJ로 열어서 사용했기 때문에 back 쪽은 조금 혼란이 있을 수 있음...) BACKEND 먼저 백엔드에 대한 환경 설정을 해보겠다. IDE로는 IntelliJ를 사용하는데, 아직 학생이신 분들은 학생 인증을 받아 무료 설치할 수 있으므로 찾아보시길 바란다. 이전 글에서 스프링 프레임워크를 시도하다가 설정 에러에 스트레스를 받아서 부트로 변경했다고 ..

💻/SPRING + REACT 2021.01.27

[스프링+리액트 웹 만들기] #0. 프로젝트 개요

백엔드 개발자라는 방향을 잡은 후, 항상 공부해야지 라는 마음만 먹고 미뤄뒀던 스프링... 기초 개념을 아무리 봐도 감이 빨리 잡히지 않았고 실제 구조와 연결이 안돼서 개인적으로 늘 부담스러웠었다. 하지만 인턴십을 하면서 과제로 받은 프로젝트가 Spring + React 를 사용해서 간단한 웹 만들기였고, 드디어 스프링에 손을 대게 되었다.🙃 (기업 인턴십 과제이긴 하지만 실제 기업 내의 주요 정보나 데이터를 전혀 포함하고 있지 않다.) 매번 구글링하고 책을 뒤져가며 어찌저찌 만든 나의 작고 귀여운 웹 프로젝트 정리를 해보자. 📌 프로젝트 개요 간단한 설문지를 생성하고 조회할 수 있는 CRUD 중심의 웹. 게시판과 비슷하지만 게시글 대신 설문지가 있고, 설문에 응답할 수 있다는 차이점이 있다. 설문지에서..

💻/SPRING + REACT 2021.01.27

기술 면접 스터디 #1. JAVA

기술 면접이 날로 어려워지고 있다... 알고 있던 내용도 긴장하면 까먹기가 다반사고 어렴풋하게 알던 내용들을 말로 정리해서 말하는 것은 더 어렵다. 겸사겸사 개념들 다시 짚어보기도 하고 나중에 한번 쭉 읽어보면 좋을 것 같아서 친구들과 화상 모의 면접으로 준비한 내용을 정리해보겠다❗️ 추후 CS 공부를 하면서 더 추가할 예정〰️ 📌 1주차 주제 : JAVA Q1. 오버로딩 vs. 오버라이딩 오버로딩(Overloading) : 같은 이름의 메소드를 여러 개 정의하는 것. - 파라미터 타입, 개수, 순서가 달라야 함. - 리턴 타입이나 접근 제어자(public, private 등...)는 영향❌ - 정적 바인딩(실행할 메소드를 컴파일 하는 시간에 결정) - 생성자 오버로딩 & 메소드 오버로딩 💡생성자 오버로..

💻/스터디 2020.08.08

[스프링 스터디] 3주차 - 트랜잭션, 보안

트랜잭션 정의 여러 개의 DML 명령문을 하나의 논리적인 작업 단위로 묶어서 관리하는 것 ALL 또는 Nothing 방식으로 작업을 처리함으로써 작업의 일관성 유지] 트랜잭션 처리 = 어떤 한 작업 묶음 속에서 문제가 발생했을 경우, 원상복구 시키는 것 데이터 무결성 유지 트랜잭션의 특징(ACID) Atomicity(원자성) : 트랜잭션은 자기의 연산을 전부 또는 전무 실행만이 있지 일부 실행으로 트랜잭션의 기능을 갖는 것은 아니다. Consistency(일관성) : 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성있는 데이터베이스 상태로 변환한다. 즉, 트랜잭션 실행의 결과로 데이터베이스 상태가 모순되지 않는다. Isolation(격리성) : 트랜잭션이 실행 중에 있는 연산의 중간 결과는 다른 트..

💻/스터디 2020.08.03

[스프링 스터디] 2주차 - 프로젝트 구조, 실습 개념 정리

Spring 프로젝트 구조 IntelliJ의 프로젝트 구조 Eclipse IntelliJ Workspace Project Project Module IntelliJ에서는 한 프로젝트 내에 여러개의 모듈로 구성되어 있다. 지난 프로젝트로 디렉토리 구조 살펴보기! controller : DispatcherServlet에서 전달된 요청을 처리 index.jsp : 뷰(.jsp) applicationContext.xml : 스프링 컨테이너 설정 파일 dispatcher-servlet.xml : 클라이언트의 요청을 최초로 받아서, 이를 컨트롤러에게 전달 web.xml : DispatcherServlet 맵핑, 스프링 설정 파일 위치를 정의 src/main ~/java : 자바 클래스(컨트롤러, 모델, DAO, V..

💻/스터디 2020.08.03

[스프링 스터디] 1주차 - 서버의 개념, MVC 패턴, Framework vs. Library, Spring Framework

서버의 개념 1. 서버의 역할 클라이언트가 요청을 하면 서버에서 응답 값을 보냄 2. HTTP와 CRUD HTTP(Hyper Text Transfer Protocol) : 하이퍼미디어 문서를 주고 받을 수 있는 프로토콜. http 형식으로 클라이언트와 서버가 요청/응답을 주고받음. (json, xml 형태 등으로 제공) { "articles" : [ {"title": "안녕하세요"}, {"title": "서버 스터디!"} ] } CRUD : 기본적인 데이터 처리 기능. Create - POST Read - GET Update - PUT Delete - DELETE 3. 서버 아키텍처 WAS : 웹 서버로는 처리할 수 없는 동적 컨텐츠인 데이터베이스 조회 및 로직 처리를 담당한다. 사전적 정의로는 인터넷 ..

💻/스터디 2020.08.03