목록전체 글 (67)
개발일지
어디에 접속하나 비밀번호를 입력하는 일은 이제 일상이 되어버렸다. 비밀번호 자동 저장기능도 쓰고.. 그러면 민감한 정보인 비밀번호는 어떻게 저장되는지 궁금해서 해당 게시물을 작성한다. 비밀번호 시스템 구현. 어떻게 해야할까? 비밀번호는 보안에 아주아주 중요한 부분을 차지한다. 그래서 제대로 구현해야 한다. 데이터베이스에 비번을 그대로 저장하는 사람은 없겠지? 비밀번호를 입력하고 회원가입을 하면 해시함수를 통해 비밀번호를 무작위 값으로 둔갑시킨다. 여기서 해시함수.. 동일한 입력값에 대해서는 동일한 출력값을 갖는다. 일대일 대응이라는 소리. 하지만 입력값이 아주 조금만 바뀌어도 출력값은 엄청 크게 바뀐다. 완전히 다른 결과가 나온다는 말이다. 엄청난 무작위성을 갖고있다. 그리고 반대로 입력한다고 해서 원래..
서버가 없긴 없는데 진짜 서버가 없다는 뜻은 아님 있기는 하지만 우리 곁에 없는 것뿐! 서버리스는 우리가 직접 관리하지 않는 서버를 의미한다. 원래 서버는 우리 곁에 있었다. 실제 회사마다 사무실에 서버를 구매해서 전원을 꽂고 인터넷을 연결해서 관리했었다. 그러면 무슨 일이 생길까? -> 사무실에 정전이 발생하면.. 누군가 서버의 전원을 뽑으면.. 난리난리 남.. 또 서버의 성능이 좋지 않은데 트래픽이 확 증가하게 되면..?? 한마디로 예전에는 서버를 전부 수동으로 관리했었다고 한다. 아마존 등장으로 서버는 우리 곁을 떠났다!!! 아마존이 EC2 (Amazon Elastic Compute Cloud) 서비스를 선보였다. 우리가 사무실에서 관리하던 서버를 아마존이 대신 운영해준다는 목적으로 나온 서비스다!..

API . Application programming interface 이다. 개발을 하면서 페이스북API, 인스타그램API 와 같이 API 말을 많이 쓰는데 API가 뭘까?? 흠, 키보드와 비슷하다고 생각하면 쉽다. 키보드는 컴퓨터에 무언가를 입력할 때 사용하는 도구이다. 컴퓨터와 내가 대화할 때 다리 역할을 해준다. 우리가 컴퓨터와 소통할 때 키보드를 쓰는 것처럼 프로그램끼리 소통할 때 쓰는 일종의 규칙을 코드화한 걸 API라고 한다. 우리가 애플리케이션을 만든다고 생각해보자. 화면에 로그인 버튼, 로그아웃 버튼, 사진 업로드 버튼이 있다고 해보자. 사진 업로드 버튼을 누르면 -사진 데이터를 데이터베이스에 저장한다- 와 같은 동작이 이뤄져야 한다. 근데 화면은 버튼을 보여주는 역할만 하고 데이터베이스..
모두 새로운 프로그래밍 언어를 배울 때 빠르게 배우고싶어한다. 새로운 언어나 새로운 프레임워크를 배울 때 사용하면 좋은 방법을 공유해보고자 한다. 나는 대학교 1학년 1학기 때 C 언어를 처음 배웠었다. 그리고 2학년 1학기 때 Java 를 배웠다. 그 때 느낀 점은 C 언어를 배우고 나서 Java 를 배우니까 좀 더 수월한 느낌이고 코드를 짜는 실력이 전보다 나아졌다는 것을 느꼈다!! 방법1. 공식 문서 보기. 공식문서에는 그 언어를 만든 사람의 철학부터 시작해서 누가 이 언어를 사용해야 하는지, 올바르게 사용한 예, 관련 커뮤니티 등 모든 자료가 있다. 말같지도 않은 블로그를 본다거나 문법먼저 확인하거나 그런 습관은 정말 안좋다. 공식문서가 짱이다!!!!!! 방법2. 문법 확인하기. 공식 문서를 보고..
자바와 완벽하게 호환되는 코틀린을 써야하는 이유는 뭘까? 어떤 장점을 가지고있길래 구글이 코틀린을 공식 언어로 채택했을까? 1. 코틀린은 null에서 안전한 언어다. 만약 자바로 프로그램을 만들면 프로그램 실행하는 도중에 null 이 생길 수 있는데 프로그램은 처리할 값이 없으니 오류가 발생한다. 하지만, 코틀린은 코드를 실행하기 전에 null 이 있을 것 같으면 미리 개발자에게 알려준다. 한마디로 코틀린은 자바와 같이 null 을 허용하기는 하는데 자바와 달리 null 발생 가능성을 미리 검사하는 언어라고 생각.. 2. 코틀린은 코루틴을 제공한다. 안드로이드 앱을 개발할 때 코틀린을 사용할 수 있다. 코틀린은 자바스크립트로도 컴파일 가능해서 react.js 나 node.js 에 활용할 수도 있다.
자바로 개발되어 있는 프로그램을 유지보수한다고 생각해보자. 개발한 시스템에 코틀린을 사용해보고싶다. 가능할까? 정답은 가능하다. 99.9%도 아닌 100% 호환되기 때문에 가능하다. 그럼 왜 100% 호환이 되는걸까? 코틀린 탄생 배경 코틀린은 JetBrains 라는 곳에서 만들어 졌다. IntelliJ (인텔리제이) 라는 IDE 를 개발하는 회사이다. 이 회사의 코드는 70%가 자바였다고 한다. 근데 IDE를 자바보다 더 좋고 멋진 프로그래밍 언어로 개선하고 싶었다고 한다. 근데 자바를 너무 많이 사용해서 전부 무시하고 새로운 언어를 가져다 쓸 수는 없었다고 한다. 그래서 자바와 호환되는 언어가 필요했는데 그게 코틀린!! 그래서 왜 100% 호환 가능하냐? 100% 호환이란 자바 코드에서 코틀린 코드를..
약 반년동안 블로그 작성을 멈췄다. 완벽주의자 성격 때문에 형편없는 글솜씨와 정보전달이라고 생각했나보다. 근데 처음부터 완벽할 수 있을까? 일단 시작하고 능력을 키워나가면 되는 것이다. 지금은 이렇게 나만 보는 블로그일지라도 추후에 다른사람에게 도움이 되는 핫한 블로그가 될 수도 있는거 아닌가?ㅎㅎ 맞다. 나는 연차가 쌓이고 직급이 올랐을 때 후배에게 도움이 되는 개발자가 되고싶다. 블로그를 통해 속해있는 회사 말고 전국 개발자들에게 도움을 주면 그보다 더 좋을 수 있을까? 엉망인 글을 쓰더라도 꾸준히 글을 올려야겠다. 개발자가 평생 공부를 하듯 블로그를 내 동반자라고 생각하고 달려가야지. 화이팅.
자바의 데이터 타입에는 크게 원시타입(primitive type), 참조타입(reference type)이 있다. 오늘 이야기 해볼건 참조타입!! 원시타입 간단하게 얘기하고 넘어가자면, 원시타입은 byte, char, short, int, long, float, double, boolean.. 을 이용해서 선언해 실제값을 변수 안에 저장한다. int a = 5; double b = 100.5; 참조 타입은 배열, 열거, 클래스, 인터페이스를 이용해 선언된 변수고 메모리의 번지를 값으로 갖는다. 번지틑 통해 참조한다는 뜻에서 참조타입이라고 부른다. String c = "kang"; String d = "kangkang"; 자바의 변수는 스택영역에 생성되고 객체는 힙 영역에 생성된다. 위에 선언된 변수 a,..
- 비동기 환경에서 실행하지만 실행이 끝나야 다음을 실행한다. - 즉, 실행은 비동기고 실행순서는 동기다. - async 는 키워드가 아니고 "async function" 이 키워드 개념이고 async 함수라고 부른다. - await 는 키워드 function create(param){ return new Promise((reslove) => { resolve(param); }); }; async function getPoint(option){ const value = await create(option);// 호출된 함수에서 promise 인스턴스를 반환해 비동기처리를 하게된다 log(value); }; getPoint({point: 100}); async 함수 - 비동기 함수를 뜻하며 AsyncFun..
all() - 파라미터의 모든 Promise() 처리를 완료했을 때 then() 의 핸들러 함수를 실행한다. - Promise.all() 형태로 작성한다. - 파라미터를 이터러블로 작성한다. : 작성한 순서대로 Promise 인스턴스 생성 - 실행자에서 실패가 발생했을 때 : reject() 가 발생한 시점에 then() 을 실행 function order(delay) { return new Promise((resolve) => { setTimeout(() => { log("실행자:" + delay); resolve(delay); }, delay); }); }; Promise.all([order(500).order(300), order(100)]).then((param) => log("then:" + p..