전체 글 101

[Algorithm] 선택정렬(Selection Sort)을 쉽게 알아보자

알고리즘 중에는 정렬 알고리즘(sorting algorithm)이 존재한다. 정렬 알고리즘이란 n개의 숫자가 주어졌을 때 이를 오름차순 / 내림차순으로 정렬하는 알고리즘을 말하며 정렬 알고리즘 안에는 다양한 알고리즘이 존재하고, 알고리즘에 따라 시간 복잡도가 다르다. 오늘은 정렬 알고리즘 중에서 선택 정렬 알고리즘에 대해 쉽게 알아보려고 한다. 💡 선택 정렬 선택 정렬이란, 현재 선택된 데이터 이후의 정렬되지 않은 데이터 중에서 가장 작은(혹은 가장 큰) 데이터를 선택해 현재의 데이터와 위치를 교환하는 방식으로 정렬되는 방식이며 제자리 정렬 알고리즘의 하나이다. ☝🏻 여기서 잠깐 , 제자리 정렬이 무엇인가요? 주어진 공간 외에 추가적인 공간을 사용하지 않는 정렬로 이미 할당된 배열 내에서 원소들의 정렬이..

기술면접대비 2020.02.13

[Protocol] OAuth 2.0 - API 무작정 쓰지말고 원리를 이해하자

💡 OAuth(Open Authentification)2.0 "웹, 앱 서비스에서 제한적으로 권한을 요청해 사용 할 수 있는 키를 발급해주는 것" 인터넷 사용자들이 비밀번호를 제공하지 않고, 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 개방형 표준 인증 방법으로 구글, 페이스북, 트위터 등이 사용하고 있으며, 타사 애플리케이션 및 웹사이트의 계정에 대한 정보를 공유할 수 있도록 허용해준다. 또한, 인증뿐만 아니라 사용자의 권한에 따라 접근할 수 있는 데이터가 다르도록 설정할 수 있는 **범용 프레임워크**이다. **OAuth의 구성** Resource Owner(OAuth를 사용하는 사람) ⭐⭐⭐ Authorization Server(OAuth 인증 서버..

기술면접대비 2020.02.11

[Web] 웹 서버와 WAS의 차이를 쉽게 알아보자

서버 개발에 있어서 가장 기초적인 개념인 '웹 서버'와 'WAS(Web Application Servier)'의 차이점을 다뤄보려고 한다. 💡 웹 서버 사전적 정의 "웹 브라우저 클라이언트로부터 HTTP 요청을 받아들이고 HTML 문서와 같은 웹 페이지를 반환하는 컴퓨터 프로그램" 웹 서버란 클라이언트(사용자)가 웹 브라우저에서 어떠한 페이지 요청을 하면 웹 서버에서 그 요청을 받아 정적 컨텐츠를 제공하는 서버이다. 여기서 정적 컨텐츠란 단순 HTML 문서, CSS, javascript, 이미지, 파일 등 즉시 응답가능한 컨텐츠이다. 그렇다면 웹 서버는 정적 컨텐츠만 제공하느냐? 그것은 아니다. 웹 서버가 동적 컨텐츠를 요청 받으면 WAS에게 해당 요청을 넘겨주고, WAS에서 처리한 결과를 클라이언트(사..

기술면접대비 2020.02.11

이것이 자바다 9장 [ 중첩 클래스 & 중첩 인터페이스] (3) - 확인문제

💡 중첩 멤버 클래스에 대한 설명으로 틀린 것은 무엇입니까? 인스턴스 멤버 클래스는 바깥 클래스의 객체가 있어야 사용될 수 있다. 정적 멤버 클래스는 바깥 클래스의 객체가 없어도 사용될 수 있다. 인스턴스 멤버 클래스 내부에는 바깥 클래스의 모든 필드와 메소드를 사용할 수 있다. 정적 멤버 클래스 내부에는 바깥 클래스의 인스턴스 필드를 사용할 수 있다. ( ❌ ) 💡 로컬 클래스에 대한 설명으로 틀린 것은 무엇입니까? 로컬 클래스는 메소드 내부에 선언된 클래스를 말한다. 로컬 클래스는 바깥 클래스의 모든 필드와 메소드를 사용할 수 있다. 로컬 클래스는 static 키워드를 이용해서 정적 클래스로 만들 수 있다. ( ❌ ) final 특성을 가진 매개 변수나 로컬 변수마 로컬 클래스 내부에서 사용할 수 있..

Java 2019.12.03

[ KH 정보교육원 ] 자바 프레임워크 개발자 양성과정 - 서블릿(Servlet)이란? + web.xml 내 설정방법

** 오늘은 주말에 밀린 JSP 복습을 하다가 서블릿에 대한 개념이 잘 이해가 가지 않아서 다시 한번 공부해 보려고 합니다. 나중에 Spring을 쓰기 위해서는 아주 중요한 것이기 때문에 제대로 짚고 넘어가고자 미숙하지만 간단하게 포스팅을 해보겠습니다. ** 1. 서블릿이란? Server+ Applet 자바를 이용하여 웹에서 실행되는 프로그램을 작성하는 기술을 뜻한다. 더 깊게 설명을 해보자면 일단 서버와 클라이언트가 무엇인지 알아야 한다. 두 컴퓨터 사이에 있어 서비스를 이용하는 클라이언트(사용자), 서비스를 제공하는 서버가 존재한다. 클라이언트가 웹 브라우저를 이용해 자신의 메일을 열람할 수 있는 페이지를 요청(Request)하면, 서버에서는 요청받은 프로세스를 처리하기 위해 일련의 로직을 구동하고,..

JSP 2019.12.01

이것이 자바다 9장 [중첩 클래스 & 중첩 인터페이스] (1) - 중첩 클래스 개념정리

1. 중첩 클래스와 중첩 인터페이스란? ☝🏻 중첩 클래스(Nested Class) : 클래스 내부에 선언한 클래스로 바깥 클래스와 내부 클래스의 멤버들을 서로 쉽게 접근할 수 있다는 장점과 외부에는 불필요한 관계 클래스를 감춤으로써 코드의 복잡성을 줄일 수 있다. class ClassName { // 중첩클래스 형태 class NestedClassName { } } ✌🏻 중첩 인터페이스 : 클래스 내부에 선언한 인터페이스를 말한다. 인터페이스를 클래스 내부에 선언하는 이유는 해당 클래스와 긴밀한 관계를 맺는 구현 클래스를 만들기 위해서이다. class ClassName{ // 중첩 인터페이스 형태 interface NestedInterfaceName { } } 2. 중첩 클래스란? 중첩 클래스는 클래스 ..

Java 2019.12.01

[DevFest on Campus 2019 at 이화여대] - 개발자를 위한 세미나를 다녀와서

나는 평소 뉴스를 보면서 굵직한 선한 영향력의 예가 이화여대에서 많이 이루어진 걸 접해왔던 터라 이화여대에 어떤 이유에서든 꼭 한번 가보고 싶었다. 그러다 2019년 11월 16일 이화여대에서 개발자들을 위한 세미나가 열린다는 좋은 정보를 신생 '여성 IT 커뮤니티 🔥FIFO🔥'에서 얻게 되어 아무것도 재지 않고 무작정 다녀오게 되었다. 현재 세미나가 끝난 2주 뒤에 작성하지만(..) 그때의 기억을 되살려 생생하고 개인적으로 느낀 점들을 정리하여 공유하고자 한다! 해당 세미나는 총 3개의 트랙으로 구성되어있었고 내가 듣고 싶은 것들을 골라 그 시간에 맞게 각 강의실에 들어가 강연을 들으면 되는 형식이었다. 그리고 로비에 많은 후원사들의 부스가 위치해있어서 재밌는 경험도 할 수 있었다. 나는 그중에서 '#..

ETC 2019.11.30

[ IT TREND / 신기술 동향 ] 블록체인? 그게 뭔데? - 개념 쉽게, 한 번에 알자

1. 블록체인(blockchain)이란? 관리 대상 데이터를 '블록'이라고 하는 소규모 데이터들이 P2P 방식을 기반으로 생성된 체인 형태의 연결고리 기반 분산 데이터 저장환경에 저장되어 누구라도 임의로 수정할 수 없고 누구나 변경의 결과를 열람할 수 있는 분산 컴퓨팅 기술 기반의 원장 관리 기술이다. 이는 근본적으로 분산 데이터 저장기술의 한 형태로, 지속적으로 변경되는 데이터를 모든 참여 노드에 기록한 변경 리스트로서 분산 노드의 운영자에 의한 임의 조작이 불가능하도록 고안되었다. 블록체인 기술은 비트코인을 비롯한 대부분의 암호화폐 거래에 사용된다. 암호화폐의 거래 과정은 탈중앙화 된 전자장부에 쓰이기 때문에 블록체인 소프트웨어를 실행하는 많은 사용자들의 각 컴퓨터에서 서버가 운영되어 중앙은행 없이 ..

TREND 2019.11.28

[ KH 정보교육원 ] 자바 프레임워크 개발자 양성과정 - 게시판 만들기(3)

** KH정보교육원에서 실제로 수강한 내용을 개인적으로 정리한 것입니다. ** 서블릿을 사용하지 않고 데이터베이스와 jsp 파일만을 이용하여 만들어 보았다. 이 단계에서는 수정(update) 기능과 삭제(delete) 기능을 구현하는 방법을 알아본다. 1. myupdate.jsp : 수정기능 이름 : 제목 : 내용 2. mydelete.jsp : 삭제기능 0) { %>

JSP 2019.11.27

[ KH 정보교육원 ] 자바 프레임워크 개발자 양성과정 - 게시판 만들기(2)

** KH정보교육원에서 실제로 수강한 내용을 개인적으로 정리한 것입니다. ** 서블릿을 사용하지 않고 데이터베이스와 jsp 파일만을 이용하여 만들어 보았다. 이 단계에서는 조회(select) 기능과 삽입(insert) 기능을 구현하는 방법을 알아본다. 1. selectOne.jsp : 조회기능 이름 : 제목 : 내용 수정 삭제 목록 2. myinsert.jsp : 삽입 할 데이터를 입력할 수 있는 페이지 구현 파일(form) 글쓰기 이름 : 제목 : 내용 : 3. myinsert_res.jsp : 삽입 시 데이터 처리 후 값을 나타내는 기능 0) { // 추가 된 사항이 있다면 %> 이름 제목 내용 :

JSP 2019.11.27