전체 글 100

개인앱 배포하고 실사용자 실제로 만난썰

방학에 앱을 하나 혼자서 만들었었다 (https://star-peanuts.tistory.com/131)대학생 등하교 택시 엔빵앱이라고 보면 된다.내가 등하교하면서 버스에 끼는게 정말 너어어무 힘들었어서 이걸 조금이라도 개선해보고 싶었다. 그리고 이왕 만든 김에 에브리타임에 홍보글을 하나 쓰게되는데... 이게 추천을 거의 250개를 받으면서 완전 핫게에 가버렸다 그리고 그 하루만에 택시메이트에 회원가입한 학우님들이 170명이 넘어가게 된다... 학교 이메일로 인증 후 가입해야 해서 정말 귀찮은 과정일텐데 이걸 해주신 학우분들 한분한분께 정말 감사했고, 내가 그만큼 누군가에게 필요한 앱을 만들었다는게 너무 기뻐서 밤에 잠을 못잤다 그리고 다음날.. 택시메이트를 아무리 새로고침해도 올라오는 글이 없어서 좀 ..

개인 프로젝트 2024.09.11

[택시메이트] 대학생 택시공유앱 출시

나는 북한산 바로 밑에있는 학교에 다니고있다.. (공기가 정말 맑다 ^^)우리 학교로 들어오는 버스 노선이 극히 제한되어있어서 등하교때마다 사람들사이에 정말 납작하게 끼어서 다녀야하고 정말 너무너무 힘들었다... (지옥의 7211, 1213, 171......) 택시를 타고 다닌다면 진짜 좋겠다고 생각했지만 용돈 받아쓰는 대학생에게 택시비는 넘 부담스러웠다.. ㅜ^ㅜ그래도 만원 지하철을 타고 만원 버스로 갈아타서 학교다니는건 정말 너무 힘들었다...하지만 이대로 계속 졸업까지 매일 고통받으며 등하교를 할 수는 없었다!! 그때 문득 이런 생각이 들었다.내가 사는 곳에 사는 국민대 학우들이랑 택시비를 엔빵해서 다니면 얼마나 좋을까? 그래서 이걸 실행에 옮겼는데,,, 바로 학교별로 모여서, 등하교시에 원하는 ..

개인 프로젝트 2024.07.17

android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: AAPT: error: file failed to compile.

플러터로 개발하면서 앱 로고를 변경하고 안드로이드로 빌드하는 과정에서 오류가 발생했다.res파일 밑에 mipmap파일들 밑에 내가 사용하려는 새로운 로고들을 png로 넣고 실행했는데, 어째서인지 인식을 못하고 있었다.> Task :app:mergeReleaseResources FAILEDFAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':app:mergeReleaseResources'.> Multiple task action failures occurred: > A failure occurred while executing com.android.build.gradle.internal.res.Aapt2..

Flutter 2024.07.08

EC2 인스턴스 갑자기 멈추는 문제 해결

AWS EC2에서 스프링부트 서버가 잘 실행되다가 갑자기 CPU사용량이 미친듯 올라가고 뻗는 문제가 발생했다.인스턴스를 중지했다가 재실행해도 문제는 해결되지 않았다. 하지만 로컬에서 컨테이너를 띄워 확인해볼 때 내 코드상에는 큰 문제가 없었고, 인스턴스를 완전히 종료한 뒤 다시 생성해서 해결할 수 있었다... CPU가 90가까이 사용량이 올라가면서 ssh 콘솔 접속도 되지않아서 너무 무서웠는데,찾아보니 인스턴스의 하드웨어 문제로 종종 이런일이 있는 것 같다. 인스턴스를 중지할때는 EBS 볼륨은 그대로 두기 때문에 하드웨어 상의 문제가 해결되지 않았고,인스턴스를 종료하고 재생성함으로써 볼륨을 삭제하고 재 생성하면서 해당 문제를 해결할 수 있었던 것 같다! 참고한 링크는 아래와 같다.https://brunc..

AWS 2024.07.07

InvalidDataAccessApiUsageException : detached entity passed to persist

JPA 엔티티가 영속성 컨텍스트에서 분리된 상태에서 persist를 호출해서 영속성 컨텍스트에 저장하려고 하니 발생한 오류다.memberPostRepository.saveAndFlush 메서드를 사용하여 MemberPost 엔티티를 영속성 컨텍스트에 저장해서 해결했다.2024-06-28T17:10:50.080+09:00 DEBUG 5097 --- [nio-8080-exec-1] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.dao.InvalidDataAccessApiUsageException: detached entity passed to persist: com.backend.kiri.domain.MemberPost]20..

Spring & SpringBoot 2024.06.28

스프링부트 엔드포인트 무한루프 오류 (NoHandlerFoundException)

스프링부트로 프로젝트를 만들다가 완전 무섭게 생긴 오류를 만났다..... 아놔 완전 무시무시하다.. !ㅁ! 무엇보다 무한루프에 컴퓨터가 뻗어서 제대로 된 로그 확인이 어려웠고, 디버깅을 했더니 코드가 타고타고 저기 심해 바닥까지 내려가서 디버깅으로는 원인을 제대로 파악할 수 없었다...그래서 일단 이것저것 시도해봤다. 1. JPA 양방향 연관관계에서 순환참조가 발생해서 생긴 문제일까? 1-1 양방향 관계를 가지는 엔티티에서 toString 메서드를 사용하면 무한 루프가 발생할 수 있다!> 롬복 사용없이 toString메서드 오버라이딩해서 순환참조를 피해보았으나 실패 1-2 잭슨 라이브러리를 사용하는 해결 방법이 있다고 한다.> @JsonManagedReference와 @JsonBackReference를 ..

Spring & SpringBoot 2024.06.27

캡스톤 졸업 프로젝트 (2024.02~06) +앱스토어 138위로 차트인+_+

2월부터 시작해서 한학기동안 열심히 달린 학교 졸업 프로젝트가 끝났다...!그런데 팀원들과 마음이 너무 잘 맞아서 방학동안 UI 개선하고 2학기에 실제로 운영을 해보기로 해서, 회고록 겸 스스로를 격려하기 위한 목적으로 글을 작성한다! +_+ 어느 프로젝트든 그렇지만 팀원 잘 만나는게 정말 중요한데, 역대급으로 마음이 잘맞고 개발도 잘하는 팀원들을 만나서 팀장으로서 너무너무 감사한 한학기였다. 어떤 문제가 생겨도 항상 든든하게 같이 고민해주는 웅배오빠, 마르지않는 아이디어 뱅크 홍현이, 우리팀의 화기애애한 분위기 담당 동윤오빠한테 이글을 통해 함께해줘서 늘 고맙다는 말을 전하고싶다. 일단 우리 팀의 주제는 학과 중심 커뮤니티 서비스로, 전국의 대학생들이 학과별로 묶여서 소통할 수 있는 어플인데, 내 개인..

팀 프로젝트 2024.06.04

Springboot+JPA 사용중 발생한 N+1 문제 개선

개인프로젝트에서 만든 조회 api에 아주 심각한 성능 문제가 있었다. 바로 조회 한번에 select쿼리가 약 10개~15개가 나가는 것이다...... 문제의 쿼리 덩어리가 날아가는 부분을 찾기 위해 디버깅을 해보니 원인을 파악할 수 있었다. 현재 Member엔티티와 Post엔티티가 다대다여서 MemberPost라는 중간 객체를 두고 필요한 정보를 이 객체를 통해 조회하고있는데, 이를 불러오는 과정에서 문제가 발생하는 것 같았다. 아래는 개선 전 도메인 코드이다. @Entity @Getter @Setter public class Member { @Id @GeneratedValue @Column(name = "member_id") private Long id; private String nickname; p..

JPA 2024.03.14

Springboot + jwt + web socket(STOMP) 채팅 구현

스프링부트로 채팅을 구현하기 위해 STOMP 프로토콜을 사용해보기로 했다. 구현을 위해 공부하는 과정에서 헷갈렸던 부분이 있어 적어둔다. STOMP(Simple Text Oriented Messaging Protocol)란 http와 호환되는 양방향 통신을 제공하기 위한 프로토콜이다. @RequiredArgsConstructor @Configuration @EnableWebSocketMessageBroker public class WebSocketConfig implements WebSocketMessageBrokerConfigurer { private final StompHandler stompHandler; @Override public void configureMessageBroker(Message..

Spring & SpringBoot 2024.02.12

Flutter에서 json 파일 사용하기 - dynamic to String

Flutter 프로젝트 내부에서 json 파일을 사용할 때 값이 String이 아닌 dynamic으로 들어가면서 생긴 오류가 있었다. { "01호선": [ "중동", "도화", "간석", "개봉", "방학", "금정", "동암", "오산", // 등등 ], "02호선": [ "이대", "홍대입구", "건대입구", "구로디지털단지", "용두", "합정", ], // 등등... } 내가 사용하고자 하는 json파일은 대충 이렇게 생겼다! String jsonString = await rootBundle.loadString('asset/jsons/subway_stations.json'); final Map lineAndStations = json.decode(jsonString); selectedLine = ..

Flutter 2024.02.08