전체 글 96

etc./모각코 2022 하계 모각코 사전 계획

1. 모각코 모여서 각자 코딩 의 줄임말로 온라인 혹은 오프라인으로 모여 코딩 및 학습을 진행하는 자기주도적 학습 소모임 2. 진행 계획 및 목표 7/6, 7/13, 7/20, 7/27, 8/3, 8/10 총 6회에 걸쳐 진행할 계획 7/6 19시 ~ 22시 (온라인) 인프런 알고리즘 강좌 5개 강좌 수강 및 문제 풀이 후 github에 push 7/13 19시 ~ 22시 (온라인) 인프런 HTTP 강좌 6개 강좌 수강 후 노션에 강의 내용 정리 7/20 19시 ~ 22시 (온라인) 인프런 알고리즘 강좌 5개 강좌 수강 및 문제 풀이 후 github에 push 7/27 19시 ~ 22시 (온라인) 인프런 알고리즘 강좌 5개 강좌 수강 및 문제 풀이 후 github에 push 8/3 19시 ~ 22시 (온..

2022.06.23

개발 공부/기타 [git] .gitignore 문법 및 규칙 정리

이번에 졸업 프로젝트를 진행하며 프로젝트를 깃헙으로 관리하게 되었는데 의도치 않게 .idea 등 개인 프로젝트 설정 파일까지 모두 깃헙이 관리하는 파일로 설정되어 업로드 되는 일이 발생했다. 이런 경우 fetch, pull 과정에서 개인 프로젝트 설정이 날라가는 일이 발생할 수 있으니 수정해야한다고 멘토님께서 지적해주셨고 이와 관련한 pr도 올려주셨다. 멘토님께서 올려주신 pr에 포함된 .gitignore 파일을 확인하던 중 .gitignore 문법과 규칙에 대해 이해되지 않는 부분이 있어서 찾아보고 중요하다고 생각되는 것들을 정리했다. .gitignore 문법 공백 → no files #로 시작하는 line → 주석 \를 통해 escape 할 수 있다. ! → 이전 패턴에 의해 exclude 되었던 파..

2022.05.23

개발 공부/Java 형 변환 정리

알고리즘 문제를 풀다보니 문제는 풀 수 있겠는데 형변환을 못해서 해결이 안 되는 문제가 꽤 많았다. 그래서 형 변환 문제에 봉착할 때마다 계속해서 추가하며 정리해보려고 한다. String ↔ int Integer의 static 메소드 parseInt, toString을 사용할 수 있다. String → int // 기본형 int i = Integer.parseInt(str); // str이 x진수로 작성되었다고 생각하고 int로 변환 int t = Integer.parseInt(str, x); int → String String str = Integer.toString(i); char ↔ int 이 경우 (char), (int)로 간단하게 변환 가능 char로 변환하는 경우 int 값을 아스키코드로 인식..

2022.05.17

개발 공부/Java 내부 클래스에 static이 권장되는 이유

강의를 듣던 중 강사님께서 내부 클래스를 static으로 선언하시길래 이유가 궁금하여 찾아보았다. 찾아보니 이팩티브 자바에 해당 내용에 대한 설명이 나와있다고 한다. 나중에 꼭 읽어봐야지,, 결론은 내부 클래스에서 외부 클래스의 인스턴스 변수에 접근하지 않는다면 내부 클래스는 static으로 선언하는 것이 좋다는 것이다. 그 이유는 크게 두 가지로 정리할 수 있는데 static으로 선언되지 않은 내부 클래스는 외부 클래스에 대한 숨은 참조를 저장해야 하기 때문에 이를 위한 시간/공간적 복잡도가 증가해 성능이 떨어진다. 내부 클래스가 외부 클래스에 대한 숨은 외부 참조를 갖기 때문에 가비지 컬렉션이 제대로 이루어 지지 않아 메모리 누수가 발생할 수 있다. 숨은 외부 참조 숨은 외부 참조라는 개념이 잘 와닿..

2022.04.26

개발 공부/Java 함수형 인터페이스와 람다식

스프링 및 자바 공부 중에 람다식을 통한 익명 내부 클래스를 종종 사용하게 되었는데 원리를 모르고 따라 사용하기만 하고 있는 듯해서 관련 내용을 공부하고 정리했다. 1. 함수형 인터페이스? 추상 메서드가 한 개만 선언된 인터페이스를 말함. 추상 메서드 외에 다른 static, default 메서드 존재 여부 및 개수는 관계 없음 @FuncationalInterface 어노테이션을 붙여 해당 인터페이스가 함수형 인터페이스인지 검증할 수 있다. (필수는 아니나 함수형 인터페이스가 아닐 경우 오류 발생) 자바에서는 기본적으로 여러 종류의 유용한 함수형 인터페이스를 제공한다. ex) 함수형 인터페이스 Function Generic으로 T 타입 인자를 받아 R 타입을 반환한다. 수학의 ‘function’과 같은 ..

2022.04.26

개발 공부/Java ISP (인터페이스 분리 원칙) in 스프링 프레임워크

제목이 너무 거창한가 스프링 공부 중 아래와 같이 스프링 컨테이너인 ApplicationContext 의 구현체로 AnnotationConfigApplicationContext 를 설정하고 BeanDefinition을 반환하는 ac.getBeanDefinition() 메서드를 호출하려는데 계속 메서드를 찾을 수 없다는 오류가 발생했다. ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); 알아보니 ac의 타입을 인터페이스인 ApplicationContext가 아닌 구현체 자체로 설정해주어야 했고, 이러한 일이 발생하는 이유는 객체 지향 설계 원칙인 SOLID 중 ISP 때문이라고 한다. ORP나 DIP, SRP에 ..

2022.04.17

프로젝트/졸업 프로젝트 소나무 언어에 다른 기술 접목 아이디어

M -> 1 번역 후 다시 1 -> M 번역 시 머신러닝 활용 다대일로 번역 후 다시 일대다로 번역될 때 항상 동일한 실행을 보장하는 코드로 번역이 되어야 할텐데 이때 머신러닝 기술을 활용하여 적절한 번역 내용을 도출하고 번역 수행할 수 있을 것 같다. 소나무 언어의 범위 외의 Solidity 코드를 소나무 언어로 번역 시 머신러닝 활용 기존에 네트워크에 존재하는 Solidity 코드를 가져다 소나무 언어로 번역하고자 할 때 정의된 소나무 언어의 범위를 벗어나는 Solidity 문법이 발견될 경우 원래대로라면 번역 자체가 이뤄지지 않겠지만 여기에 머신러닝을 활용할 수 있을까? 어떻게 학습을 시켜야할지는 모르겠다. Solidity -> 소나무 언어로 번역 시 적절한 변수명 도출 Solidity는 기본적으로..

2022.04.12

기록/후기, 회고 인프랩 CTO 이동욱 님과의 멘토링 후기

과학기술정보통신부에서 주최하는 디지털 청년고민해결단 온라인멘토링에 참여하여 인프런 CTO 이동욱 님 (a.k.a. 향로님) 과의 멘토링을 진행하게 되었다. 이번 멘토링을 통해 얻은 정보와 교훈, 그리고 앞으로의 다짐 등을 정리해보았다. 0. 지원 계기 예전에 한번 학과 홈페이지의 공지사항에 올라오는 여러 게시물 중 정말 해보고싶은 활동이 있었는데 지원 마감일 이후에 글을 확인하여 너무나 아쉽게 기회를 놓친 기억이 있었다. 깊이 탄식하고,, 그 이후로 하루에 꼭 한 번은 사업단 공지를 확인하는 습관이 생겼다. 이번 청년고민해결단 멘토링도 그렇게 매일 확인하던 학과 공지사항에서 발견하게 되었다. 사실 몇 달전까지만 해도 대학원 준비를 하고 있었고 서버 개발자로 진로를 정하게 된 건 정말 최근의 일이라 아직 ..

2022.04.04

프로젝트/졸업 프로젝트 solidity contract 분석 및 한글 계약서와의 비교

한글 프로그래밍 언어인 '소나무 언어'의 설계 과정에서 solidity 계약서에서 어떠한 문법이 주로 사용되며, 한글 언어로 변환되면서 solidity 언어의 어떤 부분이 간소화될 수 있을지 등을 도출하기 위해 이더리움 네트워크에 배포되어 있는 기존 계약서를 분석하고 한글 계약서와의 비교를 수행했다. 1. solidity contract 분석 1-1. 중고거래 contract contract escrow { // contract 생성자 constructor(uint _price) public payable { seller = msg.sender; // contract를 생성한 사람을 seller로 지정 price = _price; // contract 생성 시 물건 값을 받아 price에 저장 pay =..

2022.03.28

개발 공부/Java 자바 기초 여러가지 정리

개인적으로 맨날 쓰는데 맨날 헷갈리는 자바 기초 문법이나 특징 등등을 정리해봤습니다. 이 글은 제가 또 새롭게 헷갈리는 게 나오는 대로(?) 계속해서 업데이트할 예정입니다..😂 기본 자료형 vs 참조 자료형 기본 변수는 메모리에 값 자체를 저장하지만 참조 변수는 참조하는 객체의 주소를 메모리(변수)에 저장한다. JAVA에서 char 크기 c와 다르게 java에서는 char이 2byte로 저장된다. 서식 문자 %d - 10진수 → %Xd - 오른쪽 정렬 + 최소 X칸 만큼 공백 유지 %o - 8진수 %x - 16진수 %f - 실수 → %.Xf - 소수점 아래 X자리까지 출력 %c, %s - 문자, 문자열 조건문 (삼항 연산자) 축약 표현 조건문 : true ? false JAVA 배열의 특징 자바에서 배열..

2022.03.27