전체 글 104

[프로그래머스] 하샤드 수

💡 문제 💡 나의 풀이( 점수 : 70.6 / 100 ) class Solution { public boolean solution(int x) { boolean answer = true; int num1 = x / 10; int num2 = x % 10; if((x%(num1+num2)) == 0) { return answer; } else { answer = false; } return answer; } } 먼저, 저는 10의 자릿수와 1의 자릿수를 각각 담을 변수 두 개를 만들었습니다. 그 후, 변수 X에 저장된 두 자리의 숫자가 각각의 연산을 진행한 후 미리 만들어둔 num1, num2 변수에 각각 저장됩니다. 그다음 입력받은 변수 X를 num1, num2를 더한 값으로 나누었을 때의 나머지가 0이..

코딩테스트 2020.03.31

[Algorithm] 재귀(Recursion)에 대해 쉽게 알아보자

💡 재귀 컴퓨터 과학에 있어서 재귀는 자신을 정의할 때 자기 자신을 재 참조하는 방법을 뜻하며, 이를 프로그래밍에 적용한 재귀 호출의 형태로 많이 사용된다. 위의 이미지와 재귀는 무슨 상관관계가 있을까? 처음에는 하나의 큰 화면으로 시작해서 다른 화면을 담지 못할 때까지 점점 화면이 작아지는 것이 반복된다. 이처럼 문제를 해결하기 위해 알고리즘을 설계할 때 동일한 문제의 조금 더 작은 문제를 해결함으로써 그 문제를 해결하는 것 즉, 문제가 간단해져서 바로 풀 수 있는 문제로 작아질 때(base case)까지 해결해보는 방식이 바로 재귀이다. 💡 재귀함수 함수 안에서 다시 자신의 함수를 호출(재귀 호출)하면서 로직을 처리하는 경우를 말한다. ** ☝🏻 여기서 잠깐, 재귀 호출을 이해하기 위해서는 스택을 먼..

기술면접대비 2020.02.20

[Database] 트랜잭션(transaction)에 대해 쉽게 알아보자

💡 트랜잭션 트랜잭션이란, 간단히 말해 데이터베이스의 상태를 바꾸기 위해 수행하는 작업의 단위를 말한다. 만약 작업이 중단됐을 경우 처음부터 다시 실행하는 Rollback을 수행하고, 오류없이 실행을 마치면 Commit을 수행하는 논리적인 단위이다. ** ☝🏻 여기서 잠깐, 데이터베이스의 상태를 바꾼다는 것이 무엇을 의미할까요? Ⅰ. SELECT : 선택 Ⅱ. INSERT : 삽입 Ⅲ. UPDATE : 수정 Ⅳ. DELETE : 삭제 총 4개의 SQL 질의어를 사용하여 데이터베이스에 접근하는 것 ** ☝🏻 그렇다면 작업의 단위는 무엇을 의미할까요? 작업단위는 많은 질의어 명령문들을 사람이 정하는 기준에 따라 정하는 것을 의미한다. 게시판을 예로 들어보자 게시판 사용자는 게시글을 작성하고, 올리기 버튼을 ..

기술면접대비 2020.02.18

[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