Zero to Hero
Java 01
Programming 2021. 2. 7. 16:57

JDK와 JRE의 차이 JRE는 Java Runtime Environment의 약자 Java Byte Code에 대한 Interpreter, OS에 적합한 JRE를 설치하는 것으로 플랫폼 독립적으로 Java 코드를 실행할 수 있음. JDK는 Java Development Kit의 약자 Java 코드를 Byte Code로 컴파일하는 Java Compiler + JRE를 의미한다. J2SE, J2EE, J2ME 추후 서술 Byte Code Injection Java 코드가 컴파일될 때 코드를 분석해서 추가적으로 필요한 코드를 자동으로 추가해 Byte Code를 만드는 기술 예를 들어 어노테이션을 적용한 class에 대해서 해당하는 기능을 할 수 있는 코드를 작성한다던가, 생성자가 없는 클래스에 기본 생성자를..

코딩을 지탱하는 기술 04
Review 2021. 1. 23. 14:56

변수와 함수를 합쳐서 모형을 만드는 법 1. 모듈, 패키지 2. 퍼스트 클래스: 함수를 해쉬에 넣기 3. 클로저 4. 클래스 상속 1. 일반화/특수화 부모 클래스로 일반적인 기능을 구현하고 자식 클래스로 목적에 특화된 기능을 구현하는 접근 자식 클래스는 부모 클래스를 특수화하는 설계 방법 2. 공통부분을 추출 복수 클래스의 공통부분을 부모 클래스로서 추출하는 접근법 자식 클래스는 부모 클래스의 일종이라고 할 수 없다. 3. 차분 구현 상속 후 변경된 부분만을 구현하면 효율이 좋다는 접근법. 상속을 재사용을 위해 사용하는 방법. 자식 클래스는 부모 클래스의 일종이라고 할 수 없다. 단점 1. 상속을 많이 사용하면 코드가 복잡해진다. 2. 상속이 많을수록 깊은 상속 트리가 만들어지고, 이것은 프로그램을 이해..

article thumbnail
SSAFY(삼성 청년 SW 아카데미) 4기 교육 후기(입과부터 수료까지)
Career 2021. 1. 11. 09:31

2020년 7월부터 시작한 SSAFY 4기의 입과 과정부터 1학기 수료까지의 후기입니다. 저는 4년제 컴퓨터공학 전공자입니다. 입과 과정 서류 전형 올해 상반기 취업을 실패하고, 부트캠프를 알아보던 중에 싸 피에 대해 알게 되어 취업활동과 병행하면서 준비했습니다. 제가 작성한 자소서는 다음과 같은 방향이었던 걸로 기억합니다. 1. 왜 지원하게 되었는지... 2. 왜 취업을 하지 못했는지, 어떤 점이 부족한지... 3. 교육과정을 통해 어떤 역량을 갖추고 싶은지... 실제로 상반기 취업준비를 하면서 느꼈던 부족함을 진솔하게 적었습니다. 적성 검사 적성검사는 인적성 수리영역과 비슷한 스타일의 문제가 주어졌습니다. 코딩 문제가 아니라 오히려 수학에 가까웠습니다. 주어진 조건대로 계산을 하거나 규칙대로 시뮬레이..

article thumbnail
3954번: Brainf**k 인터프리터 (데이터 추가, 최신 버전, Python)
Algorithm 2021. 1. 2. 15:52

문제 링크 3954번: Brainf**k 인터프리터 각 테스트 케이스에 대해서, 프로그램이 종료된다면 "Terminates"를, 무한 루프에 빠지게 된다면 "Loops"를 출력한다. 무한 루프에 빠졌을 때는, 프로그램의 어느 부분이 무한 루프인지를 출력한다. ([ www.acmicpc.net 문제 개요 질문 게시판을 보면 알 수 있지만 문제 설명도 수정되었었고, 테스트 케이스의 빈틈을 노린 코드들이 재채점 되어 글을 작성하는 날 기준으로 solved.ac 랭크 골드 1 임에도 불구하고 맞은 사람 34명, 정답률 9%를 기록하고 있다. 다시 말해서 구글 검색을 통해 위 문제에 대한 코드를 올린 블로그는 거의 다 틀린 코드고, 이 때문에 모든 검색 방법을 총동원해서 거의 50번 가까이 제출을 하면서 통과한 ..

article thumbnail
코딩테스트에 Python을 사용할 때 고려 및 주의해야할 점
Algorithm 2020. 12. 20. 10:05

요즘 코딩 테스트 광탈을 Python으로 면하자는 콘셉트의 자료(게시글, 강의, 책)가 많이 보인다. 지난 1년간 코딩 테스트에 Python을 사용하면서 느낀 점과 주의할 점을 공유해보려 한다. 1. 속도 Python 관련해서 가장 많이 언급되는 부분 중 하나가 속도다. 결론부터 말하면 평균적으로 속도가 느리고, 그 속도를 가늠하기 쉽지 않다. 여기서 말하는 가늠하기 쉽지 않다는 것은 개략적인 시간 복잡도를 판단하는 것이 아닌 실제로 채점 사이트에 나오는 속도(ms)를 말한다. Python은 컴파일러(Compiler)가 아닌 인터프리터(Interpreter) 언어이다. 뿐만 아니라 언어 구조상 코딩 테스트에 주로 사용되는 C++/Java에 비해 속도가 느리다. (언어 구조 및 원리에 대해선 추후 포스팅 ..