java 21

직업으로서의 강사의 재미

직업으로서 강사의 재미는 뭘까? 수강생이 이해하기가 어려울 개념들을 고민끝에 나름 명쾌하게 설명을 하고, 그로인해 수강생의 시간을 덜어줬다는 기분이 들었을때 재밌다. 수강생의 일취월장해가는 듯한 성취를 볼때도 재밌다. 물론, 그런 모습을 보이는 수강생은 어딜가도 잘했을 사람이겠지만 그럼에도 괜히 보람됨을 느낀다. 수강생의 날카로운 질문을 통해 나 또한 생각못했던 부분들에서 인사이트를 얻게 되고, 함께 배우며 성장하는듯한 느낌이 들때 시간가는줄 모르고 재밌다. 이번주는 java에서 중요한 자료형들 list, map, set, queue 등에 대해 전반적으로 다루었고, 클래스와 객체까지 가르쳤다. 매일 매일 치열하게 강의준비를 해야하는 도전적인 한주 였고, 매 순간 긴장감을 느끼며 수강생분들 덕분에 종종 강..

부트캠프 비전공자 이야기

4주차에 접어들면서 java가 시작되었다. 수강생들간의 편차가 가장 큰 과목이 java 일것 같아서 우려를 많이 했고, 실제 강의를해보니 편차가 심해도 너무 심하다. 누군가는 변수할당도 어려워하고 if문 사용도 버거워하지만, 다른 누군가는 프로그래머스 순위에 랭커로 들 정도로 편차가 심하다. 최대한 쉬운 강의를 지향하고자 했으나, 나도 모르게 강의에 속도와 탄력이 붙어버려서 비전공 수강생들이 많이 어려워 했고, 또 그렇게 피드백을 주는 것을 보면서 조금 더 천천히 가야 겠다는 다짐을 했다. 비전공 전공이라는 키워드가 SW개발자 분야를 시작하는 사람들의 가장 큰 화두인것 같다. 비전공이라 어렵다. 전공이라 할만하다. 그런데, 돌이켜 보면 각자의 전공을 대학4년동안 듣고 공부하는 시간이 얼마나 될까. 1학년..

카카오뱅크 해외송금 서비스 구현해 보기

간편송금업체에 개발자로 일하다보니, 타 업체들의 서비스는 어떻게 돼 있는지 분석할때가 있다. 카카오뱅크 해외송금 서비스가 어떻게 돼 있는지 궁금하여 UI를 틈틈히 분석 하여 DB설계 및 rest api를 구현해 보았다. 자세한 코드는 여기 github 코드 참고 일단, 카뱅 SWIFT 해외송금 화면은 아래와 같이 생겼고, swift 송금 중에 미국(USD)송금만을 분석해보았다. 참고로, 카뱅의 송금서비스가 서버단에서 어떻게 구현돼 있는지는 나는 전혀 알지 못한다. 단지 UI만을 분석하여 서버API를 설계해본 것이다. 기본적으로 해외송금은 고객으로부터 KRW기준으로 돈을 수령하여 환전 후 국제송금망(SWIFT)를 통해 해외로 송금을 보내는 것이다.(swift를 사용하지 않을때도 있긴하다) 국제송금망을 통해..

java - 순열(조합과의 비교)

일전에, 재귀함수를 다루면서 조합을 다룬바 있다.(참고 : https://severalpg.tistory.com/20) 조합과 순열이 무엇인지에 대한 개요는 생략하도록하겠다. 바로 재귀함수를 통해 구현된 코드를 실행시키고 결과값을 봐보도록 하자. 조합 import java.util.*; public class Combination { public static void main(String[] args) { int[] arr = {10, 20, 30, 40}; for(int i =1; i

Could not find or load main class

Error: Could not find or load main class com.example.board.BoardApplication Caused by: java.lang.ClassNotFoundException: com.example.board.BoardApplication 스프링 기동중에 위와 같은 에러가 발생한다면 해볼 수 있는 조치사항에 대해 정리해보고자 한다. 참고로 본인은 mac에 intellij 사용자다. 구글링을 해봤다면 몇몇 방법들을 찾았을 것이다. 1)"Build" menu -> "Rebuild Project". 인텔리제이는 기존에 class가 존재한다면 가끔 rewrite를 못하기도 한다. 다시 빌드해보자. 2)인텔리제이를 닫고, rm -rf .idea *.iml 명령어를 실행하여 ..

mvc구조의 servlet, jsp와 비mvc구조의 jsp 비교

jsp는 렌더링 속도적인 측면에서 우위가 있는 것은 맞으나 현재는 많이 사용하지 않는 레거시가 되었다. 그럼에도 아직도 공공기관, 금융권에서 jsp는 여전히 많이 사용된다. 오늘은 컨트롤러와 비지니스처리 역할을 담당하는 자바코드 + jsp로 이루어진 mvc구조의 형식과 jsp안에 모든 java코드가 들어가 있는 2개의 구조를 비교해 보고자 한다. 방법1 jsp에 java코드를 최대한 배제하고, java파일인 서블릿에서 비지니스 로직을 수행후 request와 response에 데이터를 담아 jsp로 넘겨주면, jsp에서 req와 res에서 값을 꺼내어 화면을 렌더링 하는 방식을 먼저 살펴보자. HelloJsp.java import javax.servlet.RequestDispatcher; import ja..

java에서 json파일 parsing

JSON이란 기본적으로 Key-Value로 구성된 데이터 타입을 말한다. 그리고 자료형으로는 String, Int, Long, 그리고 Boolean 타입을 지원한다. 미리 참고로 말하자면, spring에서는 부트에 내장된 jackson라이브러리를 사용하면되나, 여기서는 스프링없는 자바코드를 보여주도록 하겠다. 먼저 java에서 json parsing에 필요한 org.json 라이브러리를 다운로드 한다. JSON 중 key-value, key-Object, key-Array 이 3가지 타입으로 이루어진 JSON파일을 파싱하는 예시를 보여주고자 한다. JSON파일은 아래와 같다. 파일명 : test.json { "nation": "Korea", "school": {"number1": "school1", "n..

프론트엔드 VS 백엔드

이제 막 진로를 정하고자 하는 신입개발자들은 백엔드로 커리어를 정할지, 프론트엔드로 할지 많은 고민이 될 것이라 생각한다. 진로를 정함에 있어 조금이라도 도움이 되고자 아는선에서 글을 써보고자 한다. (백엔드 개발자인 나의 편견과 주관이 다소 섞여 있을수 있으니, 혹시 불편하게 느끼시거나 잘못된 정보가 있다면 댓글을 달아주세요.) 1.수요공급측면 최근1년 스타트업으로 이직 후에는 개발자를 뽑기위해, 프론트엔드/백엔드 개발자들의 지원이력서들을 많이 검토하고 있는데, 최근들어 유독 저연차 프론트엔드 개발자들의 공급이 많아지고 있는 것을 느끼고 있다. 다시 말하면 괜찮은 2,3년차 백엔드 개발자들을 찾기가 힘들어졌다는 뜻이다. 대한민국 개발자의 주요 공급 root 중 하나인, 국비교육을 마치고 경력을 쌓기 시..

재귀함수의 활용

프로그래밍을 처음 배울때부터 재귀함수라는 것을 배우긴 하지만, 대개는 굳이 재귀함수가 아니어도 풀어 낼 수 있는 예제로 재귀함수를 배우게 된다. 그렇다보니 재귀함수를 왜 써야 하는지, 그리고 어떻게 써야 하는지에 대해 이해하지 못하고 넘어가는 경우가 많은 것 같다. 피보나치 수열이나 팩토리얼 문제 같은 것들이 전형적인 예제 인것 같은데, 사실 해당 예제들은 반복문으로도 얼마든지 풀 수 있고 재귀함수는 성능저하나 stack오버플로우를 유발할 수 있기에, 실무에서나 문제풀이상황에서 굳이 재귀함수를 쓸 필요가 없을 것 같다. 그래서 이 글에서는 재귀함수가 아니면 문제를 해결하기가 어려운 "조합" 문제를 통해서 재귀함수가 필요한 이유와 재귀함수를 어떻게 단계적으로 접근해 나가야 하는지 적어보고자 한다. 예시코드..

개발자라는 직업의 장점

요즘 개발자라는 직업이 꽤 인기가 있다. 경력자 연봉이 치솟고 있고, 채용공고가 넘쳐나서 어딜가야 할지 행복한 고민인 경력자들이 많을 것이다. 몇년전만 하더라도, IT 회사들의 위상이 전혀 지금같지 않았고, 대부분의 개발자들이 회사의 소모품처럼 여겨졌고, 낮은연봉에 심한 야근과 업무강도로 3D직종으로 여겨졌었다. IT대기업들의 등장과 그들이 인력을 블랙홀처럼 빨아들였고, 수요와 공급이 맞지 않게 되는 상황으로 이어지면서, 3D환경에서 일하던 개발자들도 그 낙수효과를 누릴수 있게 된 것이다. 그와 맞물려 2,3년 사이 비전공자 학원출신들의 개발자들이 업계에 크게 늘어난것이 느껴진다. 나도 비전공자이긴 하지만, 내가 일을 시작한 7,8년전쯤에는 비전공자가 it업계에 들어오는게 쉽지 않았고, 사실 하고싶지 않..