본문 바로가기

전체 글

[Java] Call by value, Call by reference Call by value : 값에 의한 호출 - 함수가 호출될 때 메모리 공간 안에서는 임시의 공간이 생성됩니다. 그리고 함수가 종료되면 해당 공간은 사라집니다. - 함수 호출 시 전달되는 변수 값을 복사해서 함수 인자로 전달합니다. - 복사된 인자값은 함수에서만 지역적으로 사용되기 때문에 local value 속성을 가집니다. * 즉, 함수 안에서 인자값이 변경되어도, 외부 변수 값은 변경되지 않습니다. (데이터 값을 복사해서 함수로 전달하기 때문에 원본 데이터가 변경될 가능성이 없습니다.) Call by reference : 참조에 의한 호출 - 함수 호출 시 전달되는 변수의 레퍼런스를 전달합니다. - 인자값은 전달된 변수를 가르키게 되어 인자값을 변경할 경우 전달된 변수의 값도 변경되게 됩니다. *.. 더보기
[베네픽처 홈페이지] 로그인 기능 구현 (세션, 서블릿 필터) 이전에 구현한 로그인은 단순히 DB에서 아이디와 비밀번호를 찾고 일치하면 해당 페이지를 보여주는 방식이였습니다. 이번에는 쿠키, 세션 방식을 활용하고 filter를 적용하여 로그인이 필요한 페이지를 구분하는 기능까지 구현하였습니다. 개념적으로 중요한 기술들이지만 우선.. 적용을 위주로 간략하고 짧게 설명하겠습니다. 쿠키 쿠키는 클라이언트(브라우저)에 저장되는 키와 값으로 이루어진 데이터 파일입니다. HTTP는 무상태 프로토콜입니다. 즉, 클라이언트와 서버가 요청과 응답을 주고 받은 이후 클라이언트가 다시 요청을 한다고해서 이전 요청을 기억하지 않습니다. 하지만 로그인 등 이전에 대한 기억이 필요한 경우 쿠키를 클라이언트에 저장 후 다음 응답에 쿠키를 같이 전달하여 이전의 기억을 유지할 수 있습니다. 쿠키.. 더보기
[지식] OSI 7 계층 OSI 7 계층이란 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말합니다. 이렇게 계층을 나눈 이유는 네트워크 통신에 대하여 흐름을 한눈에 보기 쉽고, 사람들이 이해하기 쉽고 통신이 일어나는 과정 중 특정한 곳에 이상이 생기면 해당 나눠진 단계를 통해 빠르게 파악할 수 있기 때문입니다. 1. 물리(Physical) : 리피터, 케이블, 허브 등 데이터를 전기적인 신호로 변호나해서 주고받는 기능을 진행하는 계층 즉, 데이터를 전송하는 역할만 진행 2. 데이터 링크(Data Link) : 브릿지, 스위치 등 물리 계층으로 송수신되는 정보를 관리하여 안전하게 전달되도록 도와주는 계층 따라서 통신에서의 오류도 찾아주고 재전송도 하는 기능을 가지고 있습니다. 이 계층에서는 MAC 주소를 통해 통신 3... 더보기
[Java] 자바 컴파일 과정, JVM 기본 개념 자바는 OS에 독립적인 특징을 가지고 있습니다. 즉, Windows에서도 MacOS에서도 차이가 없이 구동이 가능하다는 특징이 있습니다. 이러한 특징을 가능하게 해주는 것이 JVM(Java Virtual Machine)입니다. 자바 컴파일 순서 1. 개발자가 자바 소스코드(.java)를 작성합니다. 2. 자바 컴파일러(Java Compiler)가 자바 소스파일을 컴파일합니다. 이때 나오는 파일은 자바 바이트 코드(.class)파일로 아직 컴퓨터가 읽을 수 없는 자바 가상머신이 이해할 수 있는 코드입니다. (추가로, 바이트 코드의 각 명령어는 1바이트 크기의 Opcode와 추가 피연산자로 이루어져 있습니다.) --------------- 3. 컴파일된 바이트 코드를 JVM의 클래스로더(Class Loade.. 더보기
[베네픽처 홈페이지] JDBC Template 적용 (JDBC, SQL Mapper, ORM) 예전 Nodejs로 홈페이지를 만들 때는 MongoDB를 위한 ODM(Object Data Mapping) library를 사용하였습니다. Java 기반의 Hibernate. iBatis 등의 ORM(Object Relational Mapping)과 유사한 개념이라고 생각하면 편합니다. 이제 스프링으로 홈페이지를 새로 만들면서 바로 Mybatis를 적용해볼까 하다가 JDBC Template를 먼저 사용해보고 적용하는 것이 공부하는데도 도움이 될 것이라 생각하여 먼저 적용하게 되었습니다. JDBC 란 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API로 크게 3가지를 정의해서 "인터페이스"로 정의해서 제공하여 다양한 데이터베이스들을 표준화 해주는 인터페이스입니다. - Conneciton : 연결 -.. 더보기
[베네픽처 홈페이지] 요구사항 분석 베네픽처 홈페이지란? 흔히 볼 수 있는 회사 홈페이지입니다. 2019년도에 Nodejs로 개발하였지만 그 당시에는 객체지향의 개념도 많이 부족하여 주먹구구식의 개발을 한 것으로 스프링으로 새롭게 만들어보려 합니다. 로그인/회원가입, 광고 신청/ 조회, 관리자 페이지 등 백엔드 개발자로서 필요한 기본들이 들어 있다고 생각하여 스프링으로의 첫 개발 실습을 해보려고 합니다. 베네픽처 홈페이지를 다시 만들어보면서 이론으로만 배웠던 것들을 체득하려 합니다. (타임리프로 기능만 구현된 화면을 만들 생각입니다.) 요구사항 분석 요구사항을 분석하면서 중점으로 둔 것은 객체지향의 사실과 오해 책에서 본 상태를 중심으로 객체를 만드는 것이 아닌 행동을 중심으로 요구사항을 분석해나가려 합니다. 그렇다면 베네픽처 홈페이지의 .. 더보기
객체지향의 사실과 오해 (독서 중) https://book.naver.com/bookdb/book_detail.nhn?bid=9145968 객체지향의 사실과 오해 객체지향에 대한 선입견을 버려라!『객체지향의 사실과 오해』는 객체지향이란 무엇인가라는 원론적면서도 다소 위험한 질문에 답하기 위해 쓰여진 책이다. 안타깝게도 많은 사람들이 객체지 book.naver.com Spring을 공부하면 읽어봐야 한다는 책 두 권을 추천 받았습니다. 그 중 하나인 객체지향의 사실과 오해를 먼저 읽어보려고 합니다. 한 목차씩 보면서 감상평..?을 적어보며 정리해보자 합니다. ▣ 01장: 협력하는 객체들의 공동체 협력 공동체의 일원으로서 객체는 두가지 덕목을 갖춰야 하며 두 덕목 사이에서 균형을 유지해야 한다. 1. 객체는 충분히 '협력적'이여야 한다. 즉,.. 더보기
[백준] 5014번: 스타트링크 https://www.acmicpc.net/problem/5014 5014번: 스타트링크 첫째 줄에 F, S, G, U, D가 주어진다. (1 ≤ S, G ≤ F ≤ 1000000, 0 ≤ U, D ≤ 1000000) 건물은 1층부터 시작하고, 가장 높은 층은 F층이다. www.acmicpc.net 이제는 어느 정도 bfs의 감을 잡은 것 같다. 그리고 중요한 것은 역시나 예외 상황 처리가 가장 중요하다. 간단하지만 if의 조건을 쓸 때 앞 쪽에 예외처리를 해줘야하고 불가능한 수들을 다양하게 생각해야 한다. from collections import deque f, s, g, u, d = map(int,input().split()) answer = -1 arr = [0 for i in range(1000.. 더보기