STUDY

    [TIL] 추상클래스와 인터페이스의 차이.

    자바 문법 종합반 3주차에 배웠던 것들을 이용하여 계산기의 기능을 코드로 구현하는 과제를 해보았다, 어떤 걸 이용하면 될까 하고 생각하다가 3주차에 배웠던 개념은 상속, 추상클래스, 인터페이스 등이 핵심적이라 이런 개념을 이용하여 구현하면 될 것 같았다. 과제에서는 무엇을 이용해야 할지 직관적으로 알기 쉽게 클래스 이름이 Abstract...로 지정되어 있는것을 보니 추상 클래스를 이용하면 될 것 같았다. 근데 추상 클래스와 인터페이스의 차이가 뭔지 고민에 빠졌다. 어차피 추상 클래스도 인터페이스도 추상 메서드가 아닌 다른 메서드를 쓸 수 있고, 둘 다 extends하거나 implements 할 때 메서드를 필수적으로 구현을 해줘야 한다. 내가 강의에서 배웠던 차이는 인터페이스의 멤버변수는 public ..

    [TIL] 프로그래머스 - 신규 아이디 추천

    문제가 너무 길어 다 가져오지는 않겠지만 요약하면 이렇다. 3자 이상 15자 이하의 String을 입력하였을 때, 주어진 조건에 맞추어 바꾸는 문제였다. 조건은 이렇다. 1. 모든 대문자를 대응되는 소문자로 치환합니다. 2. 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다. 3. 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환합니다. 4. 마침표(.)가 처음이나 끝에 위치한다면 제거합니다. 5. 빈 문자열이라면, "a"를 대입합니다. 6. 길이가 16자 이상이면, 첫 15개의 문자를 제외한 나머지 문자들을 모두 제거합니다. 만약 제거 후 마침표(.)가 끝에 위치한다면 끝에 위치한 마침표(.) 문자를 제거합니다. 7. 길이가 2자 이하라면, 마..

    [TIL] 다형성 코드로 익혀보기

    오늘 다형성에 대한 강의를 듣다가 도저히 이해가 가지 않아서 내 나름대로 코드로 공부를 한 번 해보려고 했다. 직관적으로 알기 쉽게 아래 코드와 같이 부모 클래스는 Parents로 자식 클래스는 Child로 정해서 보기로 했다. public class Parents { public void love() { } } public class Child extends Parents{ public void play() { } } ※ instaceof 메서드는 해당 레퍼런스 변수가 형변환이 가능한지 여부를 물을 때 사용된다. Case 1. 부모 타입 객체를 부모 클래스 생성자로 인스턴스화한다. 인스턴스화 한 객체를 자식 클래스 타입으로 형변환한다. Parents p1 = new Parents(); // Child ..

    [TIL] pull request 연습.

    [TIL] pull request 연습.

    오늘은 업무에서나 개인적으로나 많이 쓸 수 있는 pull request를 연습해 보았다. 1. 기여하려는 repo에 가서 fork해온다. fork해 오면 내 계정의 소유로 repo가 복제가 된다. 남의 원격 저장소에서 내 원격 저장소로 되는 것! repo 이름을 설정해 준뒤, 해 준다. 내 repo에 가보면 fork해온 repo를 확인할 수 있다. 2. 포크한 repo를 클론해오기(원격 -> 로컬) 작업하려는 폴더에서 git bash here을 누른 다음, git clone 를 명령어로 입력하면 원격 repo가 내 로컬로 clone이 된다. 일단은 바탕화면에다가 해보자! 3. 브랜치 생성 후 생성한 브랜치로 chekout하기 repo가 있는 폴더로 이동 후 다시 bash에서 ..

    [TIL] 프로그래머스 - 완주하지 못한 선수

    수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. ※ 제한사항 ※ * 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. * completion의 길이는 participant의 길이보다 1 작습니다. * 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. * 참가자 중에는 동명이인이 있을 수 있습니다. List 활용 처음에는 List에 참여선수를 다 넣었다가 완주선수를 다 빼면..

    [TIL] 깃 에러 해결(README 충돌)

    [TIL] 깃 에러 해결(README 충돌)

    일주일 후 스터디 모집을 계획하고 있는데 깃으로 기록하면 좋을 것 같았다. 첫 날 OT로 깃에 대해서 설명을 해야겠다고 생각했다. 설명을 준비하면 나에게도 공부가 되고, 스터디 진행에도 실수를 조금이라도 더 줄일 수 있기 때문이다. 공부가 필요한 부분은 pull request, 브랜치, merge, clone하는 방법 같은 것들이었다. 연습을 위해서 Github에서 repository를 생성하고, 기준이 되는 Java Project를 하나 만들고 두 개를 연결시켜주면 끝나는 아주 쉬운 일이었다. 매번 하던 일이었기도 했다. 빨리 만들고 깃허브에 다른 계정을 만들어 pull request와 clone 등을 연습해 볼 생각에 약간 설레기도 했다. 오늘 특강에서 실무에서 회사마다 다른 깃을 쓴다는 강사님의 말..

    [TIL] 프로그래머스 - 체육복

    프로그래머스 문제) 체육복 반에서 체육복 도난 사건이 있었는데, 여벌 체육복이 있는 학생이 도난 당한 학생들에게 체육복을 빌려주려 한다. 학생들의 번호는 체격 순으로 매겨져 있어서 바로 앞번호의 학생이나 뒷번호의 학생에게만 체육복을 빌려줄 수 있다. ex. 4번은 3번과 5번한테만 빌려줄 수 있다. 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 한다. 전체 학생수 n, 도난당한 학생의 번호가 담긴 배열 lost, 여벌 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 주어진다. 체육수업을 들을 수 있는 학생의 최대값은? 주의) 여벌 체육복을 가져온 학생이 체육복을 도난 당하면 한 벌만 남아있는거로 생각한다. 문제의 의미는 알겠는데 이것을 코드로 어떻게 구현할까. 잘 떠오르..

    [TIL] 프로그래머스 - 숫자 짝꿍

    5일이 걸려서 드디어 문제를 푸는 데 성공했다. 이번 주는 시간이 없어 매일 30분 정도밖에 투자하지 못한것 같다. 하지만 풀어낸 과정이 괜찮았던 거 같아서 기록해본다. 문제 설명(from. Programmers '숫자 짝꿍') 두 정수 X, Y가 있을 때 겹치는 숫자를 찾아 가장 큰 수를 만드는 것. ex. X = 3403, Y = 13203 : 공통으로 나타나는 3, 0, 3으로 만들 수 있는 가장 큰 정수인 330 ex. X = 5525, Y = 1255 : 공통으로 나타나는 2, 5, 5로 만들 수 있는 가장 큰 정수인 552 겹치는 수가 없으면 "-1" return. X와 Y는 String으로 주어지며, 자릿수는 3,000,000이하이다. X와 Y는 0으로 시작하지 않는다. String으로 re..

    [TIL] GitHub Repository 정리(IntelliJ 파일 정리하기) #내 잔디 돌려줘..

    [TIL] GitHub Repository 정리(IntelliJ 파일 정리하기) #내 잔디 돌려줘..

    * Repository를 정리하게 된 이유 * 잔디 사라짐 이슈.. 내 잔디 돌려줘...ㅠㅠㅠ * 해결!!! 십년감수했다 징챠아... Repository 정리를 해보자! 나는 현재 쓰는 Repository 말고도 안 쓰는 Repo가 두 개가 더 있다. 첫 번째는 github에서 처음으로 만들어서 사용하고 있었던 legendary-pancake(페이지 자체 추천을 받아 만들었다. 전설의 팬케익이라니? 너무 좋아..! 해서 만들었다) 두 번째는 원래 쓰고 있던 자바 버전이 19버전이라 non-LTS이기도 하고, 한글 깨짐 이슈가 있었기 때문에 LTS인 17로 다시 되돌리면서 사용하던 이클립스도 다시 설치를 하면서 만든 "after-pancake"가 있었다. 나는 깃을 잘 몰라서 문제가 생길 때마다 일단 re..

    [TIL] GitHub README를 잘 적는 방법.

    README란? 깃의 한 Repository를 간결하게 잘 보여주는 설명문 같은 것. 오늘 팀별 프로젝트 발표를 듣다가 튜터님께서 README를 써보라고 하셨는데 프로젝트에 대해서 어떻게 적어야 하는지, 어디까지 적어야 하는지, 무엇을 적어야 하는지 잘 몰랐기 때문에 튜터님께 직접 DM을 보내 여쭈어보았다. 튜터님은 README에 대해서 찾아보면 Format이 다양하게 나오는데, 어떤 README가 좋은 README인지는 잘 나오지 않는다고 하시며 예시를 들어 아주 자세하게 잘 가르쳐 주셨다. (아래 링크들은 튜터님이 참여하셨던 실제 프로젝트의 GIT의 Repo 주소) 앱, 백엔드, 프론트엔드에 따라 README를 적는 포맷이 조금씩 다르다. 앱(IOS) https://github.com/3dollar-..