전체 글
-
IT 연합동아리 프로그라피 8기 후기Retrospection/Event 2023. 12. 17. 22:16
정말 정말 오랜만에 글을 쓴다. 올해 2월부터 8월 말까지 프로그라피라는 IT 연합동아리에 참여해 활동했다. 프로그라피라는 동아리가 어떤 곳이고, 이 활동에서 내가 무엇을 얻었는지 그리고 이 활동에서 기대할 수 있는 것들은 무엇인지 소개해보겠다. 1. 프로그라피? 프로그라피는 내가 활동할 당시 디자이너, 프론트 개발자, 백엔드 개발자 세 파트가 팀을 구성해 하나의 프로덕트를 개발하는 활동이다. 이번 9기에서는 마케팅, P.O 파트를 새로 신설하여 조금 더 체계적인 프로세스로 서비스를 개발할 수 있도록 돕는다. 이 프로덕트를 개발하는 과정을 배민, 라인 등 여러 기업의 개발자들의 피드백과 가이드에 따라 진행하게 된다. 특히 2주에 한번씩 모든 사람들이 참여하는 세션을 진행하여 협업과 개발에 있어서 필요한 ..
-
SQLIntegrityConstraintViolationExceptionDebuging 2022. 8. 31. 22:06
Cannot add or update a child row: a foreign key constraint fails (`stepstone`.`#sql-1898_92`, CONSTRAINT `FKkth6nbx4fl29impm13x6q94x6` FOREIGN KEY (`ChatRoomEntity_chat_room_cid`) REFERENCES `chat_rooms` (`chat_room_cid`)) 멋사 해커톤 프로젝트에서 ManyToMany 매핑을 설정하던 중 다음 에러가 발생했다. 그리고 db에 들 어가보니까 다음과 같이 컬럼이 새로 생성됐다. ManyToMany annotation으로 자동 외래키 설정하던 중 컬럼의 이름을 잘못 설정하는 것 같았다. 구글링하여 조인 테이블과 컬럼을 다음과 같이 설정해주..
-
Lambda기술 면접/Java 2022. 8. 18. 21:08
람다식이란? 람다 식이란 Java8에 새로 추가 됐고 함수형 프로그래밍을 위한 첫 단추가 됐다. 람다식을 사용하는 함수를 람다 함수라 한다. 람다 함수는 익명 함수를 지칭하는 용어이며 함수를 보다 단순하게 표현하기 위해 사용된다. 람다식을 사용하면 메소드가 어느 특정 클래스에 선언하지 않으며 기능을 수행할 수 있다. 또한 객체처럼 전달되어 요청시 실행할 수 있다. 람다 표현식 기본식 (매개변수, ...) -> { 실행문 ... } (매개변수, ...)는 오른쪽 중괄호 { } 블록을 실행하기 위해 필요한 값을 제공하는 역할을 한다. 매개 변수의 이름은 개발자가 자유롭게 지정할 수 있으며 인자타입도 명시하지 않아도 된다. -> 기호는 매개 변수를 이용해서 중괄호 { } 바디를 실행한다는 뜻으로 해석하면 된다..
-
Java에서 Null을 안전하게 사용하기기술 면접/Java 2022. 8. 14. 03:25
Null이란? 레코드 핸들링: 객체 지향의 시초가 된 논문 ⇒ 특별한 값이 없음을 나타내려고 null을 도입했다. 이 값을 사용하려고 할 때 오류를 발생시키도록 설계됐다. Null이 만들어지면서 모든 참조는 null or 값인 상황이 만들어졌다. 때문에 모든 개발자들은 각 참조가 null인지 아닌지 체크해야 됨. Java의 Null Java에서 null의미는 굉장히 모호하다. 초기화 되지 않음 / 정의되지 않음 / 값이 없음 / null이라는 값 혹은 4가지가 무슨 차이 인지 모를정도로 모호함. 모든 참조의 기본 값은 null이다. 모호함으로 인한 문제 - 소프트웨어 결함 통계 ref : Sapienz: multi-objective automated testing for Android applicatio..
-
Stomp, SockJS를 이용하여 채팅 구현하기기술 면접/Spring 2022. 8. 11. 00:17
이 포스트는 아래 Baeldung 사이트에서 작성한 Websocket 사용 채팅 앱 예제를 그대로 따라한 후 작성하는 포스트다. https://www.baeldung.com/websockets-spring Intro to WebSockets with Spring | Baeldung A quick intro to using WebSockets with Spring from a JS client. www.baeldung.com 멋자 백엔드 스쿨 해커톤에서 필요한 채팅 기능을 위해 여러 곳을 찾아보던 중 위 사이트에서 핵심만 구현해놓은 포스트를 찾아 그대로 따라했다. Stomp, SockJS를 사용해 구현했는데, 나는 이 두개가 뭔지 아직 모른다. 우선은 코드 내에 흐름만을 분석하여 작성할 것이다. # 프로젝..
-
Spring vs Spring boot기술 면접/Spring 2022. 8. 9. 21:58
Spring을 처음 시작할 때 Spring이라고 한다면 Spring boot를 나타내는 줄 알았다. 하지만 둘은 분명한 차이가 있다. Spring이 무엇인지, Spring boot와 서로 차이점은 무엇인지 알아볼 것이다. # Spring? Spring은 경량화된(lightweight) 자바 오픈 소스 개발 프레임워크다. Spring은 기업 수준의 자바 앱 개발을 위한 구성 모델과 포괄적인 프로그래밍을 지원한다. 간단하게 말하자면 기업 용 자바 개발을 심플하게 만들어주고 효과적, 효율적으로 하기 위함을 목표로 한다. Spring은 본래 넓은 분야에 앱 개발을 지원하기 때문에 많은 모듈들을 가지고 있다. Spring MVC Spring JDBC Spring Security Spring ORM Spring A..
-
쿠키와 세션기술 면접/Web 2022. 8. 8. 21:38
쿠키와 세션이 등장한 배경에는 Http의 특징인 Stateless(무상태성) 때문이다. 쿠키 세션 등장과 관련된 Http의 특징을 알아보고, 쿠키와 세션에 대해 알아보자 #1 Http의 특징 1. 비연결성(Connectionless) 비연결성이란 단어 그대로 연결을 하지 않는다는 뜻이다. Client와 Server가 통신을 위해 Request, Repsonse를 전달할 때를 제외하고는 연결을 유지하고 있지 않는다. 즉, Client요청에 맞게 응답을 한 후 연결을 끊어버린다. 2. 무상태성(Stateless) 무상태성이란 비연결성의 특징과도 관련이 되어 있는데, Http는 Request, Response가 끝난 후에 연결을 끊어버리기 때문에 이전의 상태 정보나 현재 통신의 상태가 남아있지 않는다. 즉 서..
-
#1 Garbage Collection기술 면접/Java 2022. 7. 6. 17:33
https://www.geeksforgeeks.org/garbage-collection-java/ Garbage Collection이란? Garbage Collection은 Java가 자동으로 메모리를 관리를 수행하는 프로세스다. Java 객체들은 heap메모리 영역에서 생성되는데, 나중에 사용하지 않는 객체들을 Garbage Collector가 찾아내고 메모리에서 삭제하여 공간을 확보한다. C/C++에서는 객체생성과 삭제를 둘 다 진행해야한다. 만약 생성 후 삭제를 진행하지 않으면 메모리 공간 부족으로 새 객체를 사용하지 못하게 되고 프로그램은 중단될 수 있다. OutOfMemoryErrors의 원인. C언어에서의 객체? 더보기 C언어는 객체지향 언어가 아님. 근데 객체를 생성한다는 것은 무슨 의미? ..