Engineering WIKI
-
자바 프로그래밍 면접 이렇게 준비한다 - (Comparable vs Comparator)Engineering WIKI/Book 2021. 9. 5. 11:39
이력서 작성 팁 팀에서 어떤 역할을 했고, 어떤 부분을 담당했으며, 무엇을 이뤄냈는지 명확하게 어필좋은 예시) 저는 'xxx' 게임의 서버 부분을 개발했습니다. 안정성에 중점을 두고 개발했으며, 첫 한 달 동안 서버가 중지되는 일 없이 일일 활성 사용자 2백만 명이 접속했습니다. 나쁜 예시) 저는 'xxx'라는 게임을 출시한 팀에서 일했습니다. 첫 한 달 동안 일일 활성 사용자가 2백만 명이 됐습니다. Comparable vs Comparator Comparator 인터페이스 (docs) package java.lang; public interface Comparable { public int compareTo(T o); } Comparable 인터페이스 (docs) package java.util; @..
-
Apache openssl 설정Engineering WIKI/Linux 2021. 7. 4. 08:11
OpenSSL 설치 및 인증서 생성 1. OpenSSL 설치 먼저 우분투 패키지를 업데이트하고, OpenSSL이 설치되어있는지 확인해 보자. [mgt@localserver: ~$] sudo apt-get update [mgt@localserver: ~$] sudo openssl version OpenSSL 1.0.2g 1 Mar 2016 OpenSSL이 설치되어 있다면 위와 같이 버전이 나타날 것이다. 설치되어 있지 않다면 아래 명령어를 입력하여 OpenSSL을 설치한다. [mgt@localserver: ~$] sudo apt-get install openssl 2. 개인키 생성 [mgt@localserver: ~$] sudo openssl genrsa -des3 -out server.key 2048 G..
-
[JS] 자바스크립트 ES6Engineering WIKI/Js 2021. 6. 15. 06:05
변수 스코프 변수와 상수는 스코프마다 선언가능. 스코프는 중괄호로 감싼 범위를 나타냄 const schoolName = "ABC"; schoolName = "CBA"; // Error let a = "aaaa"; a = "CCCC"; // Success const는 변수 자체가 가지는 참조를 바꾸지 못할 뿐 변수가 가지는 객체의 참조는 바꿀 수 있다. const obj = { a : 1, b : 2, c : 3 } obj.a = 10; // 정상 obj = 값 // 에러 템플릿 문자열 문자열 또는 문자열을 덧셈(+) 연산자를 통해 하나의 문자열로 만든 방식에서 백틱(`)과 ${}으로 문자열을 생성하는 방식 이전 코드 const num1 = 10; const num2 = 20; console.log(..
-
리눅스 랜덤 패스워드 생성하기Engineering WIKI/Linux 2021. 6. 15. 05:06
랜덤 패스워드 생성 명령어 (32 글자) testuser@localhost:~$ < /dev/urandom tr -dc A-Za-z0-9 | head -c32; echo u5etCB4B9oGr9wJbtjqFMoNcwEwEChsw 랜덤 패스워드 생성 명령어 (64 글자) testuser@localhost:~$ < /dev/urandom tr -dc A-Za-z0-9 | head -c64; echo eforJvkfgfy9LOueWrWAJMrKZp4CilEYzPt54K0SJ2QFYpTI0HCfGuWHUfpoI68b 리눅스 tr 명령어 (/usr/bin/tr) 리눅스 텍스트 필터의 한가지 2개의 문자집합을 파라미터로 입력받아 대응되는 문자로 변환 [root@zetawiki ~]# echo hello | tr a..
-
Git - git reflog로 hard-reset되돌리기Engineering WIKI/Version Control 2021. 5. 2. 13:59
git log를 한줄로 볼때 다음과 같은 명령어를 사용합니다. $ git log --oneline 커밋 하나 전으로 돌아가기는 다음과 같습니다. $ git reset --hard HEAD~ 다음과같이 상황을 가정해봅니다. 7e5b465커밋을 하고, b6596fc커밋은 한 뒤 3477f6커밋을 했다고 가정합니다. > 3477df6 (HEAD -> master) commit 2 > b6596fc commit 1 > 7e5b465 (origin/master, origin/HEAD) Initial commit 그런데 실수로 3477df6을 $ git reset —hard HEAD로 지워버려서, 현재 HEAD는 b6596fc (HEAD -> master)가 되어버렸습니다. 이럴때, git reflog 명령어로 모..
-
[Spring] Kotlin과 JPA를 사용하여 간단한 API 만들기Engineering WIKI/Spring 2021. 4. 26. 15:26
이번에는 Spring boot, JPA와 코틀린(Kotlin)을 사용하여 간단한 API를 만들어 보려고 한다. 현재 사내에서 API 서버를 스프링 부트와 코틀린을 사용하여 개발하고 있다. 하지만 구글 검색 시 자바에 비해 코틀린에 관한 내용은 많이 부족하다. ....그래서 시간 날떄 틈틈히 정리를 해보려고 한다. 사용한 기술은 아래와 같다. - Spring Boot - Kotlin - gradle - postgresql - JPA IDE는 IntelliJ를 사용하였으며, 이클립스 환경이랑은 약간 차이가 날 수 있다. 여담이자만 IntelliJ와 PyCharm을 접하고 나니 이클립스와 VScode를 사용하여 개발하는 상상만 해도 끔찍하다 .... 이제 아래 코드를 보면서 살펴보자. 프로젝트 구조 먼저 프로..
-
JPA 사용법 (JpaRepository)Engineering WIKI/JPA 2021. 4. 26. 15:10
JPA에 대한 개념은 이해가 갔지만 처음 코드를 접했을 땐 이해 안가는 부분이 많았다. 그래서 잘 정리된 블로그를 참고해 다시 한번 사용법을 알기 쉽게 정리해보고자 한다. Entity 먼저 데이터베이스에 저장하기 위해 유저가 정의한 클래스가 필요한데 그런 클래스를 Entity라고 한다. Domain이라고 생각하면 된다. 일반적으로 RDBMS에서 Table을 객체화 시킨 것으로 보면 된다. 그래서 Table의 이름이나 컬럼들에 대한 정보를 가진다. /** * Created by Itner on 2017. 7. 20.. */ @Entity public class Member { @Id @GeneratedValue(strategy= GenerationType.AUTO) private long id; @Colu..
-
Kotlin 문법 및 사용법 정리 (3)Engineering WIKI/Kotlin 2021. 4. 26. 15:06
1. 동반자객체(Companinon object) 코틀린에서는 static을 지원하지 않는다. static의 효과를 얻으려면 코틀린에서는 companion object를 사용하면 된다. class Person private constructor(){ //5번째 줄의 create() 함수를 통해서만 Person 객체를 생성할 수 있게 하도록 생성자를 private으로 지정 companion object {//companion object 정의 fun create(): Person{ //Person의 인스턴스 생성. countCreated += 1 //지금까지 생성된 인스턴스 개수 반환 return Person() } var countCreated = 0 private set // 외부에서 값의 조작방지를 ..