본문 바로가기

전체 글

(115)
[코딩 테스트] leet code 6. Zigzag Conversion Input: s = "PAYPALISHIRING", numRows = 3 이런식으로 변경할 값과 3이 마다 위아래로 움직이는 방식이다. P A H N A P L S I I G Y I R StringBuffer을 높이 만큼 만든 다음, 높이 0 과 numRows-1 이 되면 반대로 움직이면 StringBuffer안에 넣는다. 그리고 String으로 만들어 리턴을 하면 값이 나옵니다. public String convert(String s, int numRows) { if (numRows == 1) return s; List rows = new ArrayList(); for (int i = 0; i < Math.min(numRows, s.length()); i++) rows.add(new StringBuil..
TDD란 무엇인가 TDD란 무엇인가 Test-Driven Development(TDD)는 매우 짧은 개발 사이크의 반복에 의존하는 소프트웨어 개발 프로세스 이다. 우선 개발자는 요구되는 새로운 기능에 대한 자동화된 테스트 케이스를 작성하고 해당 테스트를 통과하는 가장 간단한 코드를 작성한다. 일단 테스트 통과하는 코드를 작성하고 상황에 맞게 리팩토링하는 과정을 거치는 것이다. 말 그대로 테스트가 코드 작성을 주도하는 개발방식인 것이다. Add a test 테스트 주도형 개발에선, 새로운 기능을 추가하기 전 테스트를 먼저 작성한다. 테스트를 작성하기 위해서, 개발자는 해당 요구사항과 명세를 분명히 이해하고 있어야 한다. 아는 사용자 케이스의 사용자 스토리 등으로 이해할 수 있으며, 이는 개발자가 코드를 작성하기 전에 요구사..
객체 지향 프로그램이란 무엇인가 Object Oriented Programming 객체 지향 프로그래밍 이전의 프로그래밍 패러다임을 살펴보면, 중심이 컴퓨에 있었다. 컴퓨터가 사고하는대로 프로그래밍을 하는것이다. 하지만, 객체지향 프로그램밍이랑 인간 중심적 프로그래밍 패러다림이라고 할 수 있다. 즉, 현실 세계를 프로그래밍으로 옮겨와 프로그래밍하는 것을 말한다. 현실 세계의 사람들을 객체라고 보고 그 객체로부터 개발하고자 하는 애플리케이션에 필요한 특징들을 뽑아와 프로그래밍 하는 것이다. 이것을 추상화라 한다. OOP 로 코드를 작성하면 이미 작성한 코드에 대한 재사용성이 높다. 자주 사용되는 로직을 라이브러리로 만들어두면 계속 사용할 수 있으며 그 신뢰성을 확보 할 수 있다. 또한, 라이브러리를 각종 예외상황에 맞게 잘 만들어두면 개..
nextstep - 인프라 공방 1주차 나는 자바 개발인데? 왜 인프라에 대해 공부하는지에 대해 먼저 얘기를 하는것이 좋을 것 같다. 면접을 보다 보면 Spring에 대한 질문도 하지만, AWS 인프라 관련한 질문도 많이 들었다. 멋사에서 EC2에서 docker 로 이미지 올리는 자동화 기능을 추가한적이 있다. aws에 탭에 대해서 얘기를 하라고 하면 자신이 없었다. 이렇게 까지는 아니여도 인프라적인 https 나 로그 관련한 일들을 공부하고 싶어 수업을 듣게 되었다. VPC및 서브넷을 만들고 자바를 실행하는 것 까지를 진행하였다. 첫번째는 EC2를 만들었다. 크게 public(web), internal(DB) , Baston(baston) 세개를 만들었다. OS는 우분투, instanct Type은 t3.medium 을 생성하였다. 두번째로..
[프로그래머스] - 가장 큰 수 문제 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 6, 10, 2 을 넣게 되면 6210 이 출력되어야 한다. 숫자에서 정렬을 시도하면 엉뚱한 값이 나올 수 있으므로 문자로 변환후, 정렬해봐야 알수가 있다. 1. 이중 for문 사용 // 숫자 -> 문자 -> 내림차순정렬 -> 조합 Strin..
제로베이스 백엔드 부트캠프 5달 회고록 ‘이 글은 데이원컴퍼니로부터 소정의 원고료를 지급받아 작성되었습니다. ’ 이제 거의 스쿨이 막바지로 다가왔다. 처음에는 백엔드 부트캠프 수업을 어떻게 다 하지? 라는 생각을 했지만, 어떻게 버텼지? 하면서 회고화게 되는것같다. 1. 개인 프로젝트 진행 후기 이번달에는 개인프로젝트를 하기 시작했다. 많이 시간은 들여서 한것은 아니지만 그래도 뭔가 완성이 되고 있다는것에 성취감을 느껴갔다. 깃허브에 PR을 올리게 되면 Slack에 알림이 가는 방식으로 진행되었으며, 효진 멘토님, 무지 멘토님께서 정성스럽게 리뷰를 남겨 주었다. 솔직히 회사 다니면서 미루었던것이 몇개 있었는데 회고록 하면서 반성을 하게 된다. 개인프로젝트를 하다가 모르는게 있으면 멘토님께 질문을 하였고 답글은 하루에서 이틀정도 소요 되도록 와..
NEXTSTEP ATDD 1주차 회고 멋쟁이 사자처럼 교육이 끝나고 이번에는 nextstep이라는 교육 사이트의 ATDD 라는 교육을 듣게 되어 회고를 하게 되었다. 수강비가 일단 70만원이라고 당황을 하였다. 인프런이나 패스트캠퍼스처럼 강의를 따라 진행하는 것이니라 미션을 진행하고 리뷰어 분들에게 리뷰를 받는것이 이 교육의 진행 방식이다. ATDD 는 지하철 관련하여 기능을 추가하고 테스트를 해보는 시간을 가졌다. 교육의 소개는 이것으로 짧게 소개를 하고 본론으로 들어가도록 하겠다. ATDD가 무엇일까? 간략하게 말하면 시나리오를 적고 그것을 테스트를 진행하는 애자일 방법론이다. Feature: 라면 끊이기 Scenario: 신라면 끊이기 Given 냄비가 준비가 되어 있다. And 가스불도 준비가 되어 있다. When 물과 라면을 넣는다..
제로베이스 백엔드 부트캠프 4달 후기 제로베이스 백엔드 부트캠프를 과정을 다니면서 이제 4달째가 되었다. 첫번째 1세션인 코딩테스트와 자바의 기초및 CS관련 공부하는 것이 끝나고 실무에서 많이 쓰이는 스프링 단계로 넘어 가게 되었다. 이번 시간에는 PART 1의 회고록 형식으로 진행 해보려고 한다. 솔직히 직장다니면서 부트캠프나 다른 공부나 취미생활를 한다는 것 자체가 엄청나게 힘든 일이다. 더구나 나는 경기도에 살기 때문에 서울에 직장까지는 왕복 3~4시간이 소요되기 때문에 중간중간 포기하고 싶었던 적은 엄청나게 많았다. 주말에는 코딩이라는 공부를 벗어나고자 넷플릭스에 "타다" 라는 다큐멘터리를 보았었다. 스토리를 간단하게 말하자면, 처음부터 사업을 시작하게 되어서 주위에서 들었던 말들은 "괜찮아?", "이직 준비는 잘하고 있어?" 긍정적..